ionic開發中的各種坑


提前說明:這些坑是ionic1的。

一、關於緩存:<ion-view>中設置cache-view="false"表示禁用緩存,默認為true;

 

二、列表進入詳情頁面后返回,列表頁面刪選欄和滾動條和跳轉前一樣,但從home進入列表頁面要刷新。思路是用$ionicHistory判斷是進入or回退,要是進入就初始化,回退就保留緩存:

  1. 列表頁面設置cache-view="true";
  2. home控制器中提供添加:$ionicHistory.clearHistory(),因為不管回退還是進入,$ionicHistory的backView都是home頁面;
  3. 列表頁面添加以下代碼:
      $scope.$on("$ionicView.beforeEnter", function() {
            var clearHistoryForIndexPage = function() {
                var history = $ionicHistory.forwardView();
                if (!history) {
                    init();
                }
            };
            clearHistoryForIndexPage();
        });

    其中init()為初始方法。

 

三、滾動條:

  1. <ion-scroll>必須設置高度,且高度小於內容時才會滾動;
  2. 在瀏覽器下,滾動條滾動到底部還能再繼續滾動,但真機上確是到底部無法滾動,不得不說這真是個坑,我研究了好久,結果在真機上卻是正常的,所以有時候找不出原因,不妨真機調試看看,沒准只是瀏覽器視圖錯誤。
  3. 用指令動態設置<ion-scroll>的高度:

 

.directive('scrollHeight',function($window){
    return{
        restrict:'AE',
        link:function(scope,element,attr){
            element[0].style.height=($window.innerHeight)+'px';
               //這里設置為屏幕高度
        }
    }
});

 

 

四、ion-infinite-scroll調用多次問題

解決方法:設置immediate-check="false"。

原因:若列表沒有很快加載出來,瀏覽器以為已經到達底部,所以on-infinite方法會觸發多次。immediate-check表示是否頁面加載后立刻觸發on-infinite方法,false表示只有滾動到頁面邊緣時才觸發。

 

五、$ionicBackdrop 的retain()方法表示顯示背景,使用時要注意防止調用三次,否則release()需要調用三次才能取消背景層。

 

六、<textarea>和padding對頁面切換動畫的影響:

<ion-view view-title="Facts" >
        <ion-content  >
            <div  class="padding">
                <textarea placeholder="test" autofocus="autofocus" rows="6"  ng-model="Input.test" ></textarea>
            </div>
            <div> test</div>
            <p >
                <a class="button icon ion-home" href="#/tab/home"> Home</a>
                <a class="button icon icon-right ion-chevron-right" href="#/tab/facts2">More Facts</a>
            </p>
        </ion-content>
    </ion-view>

在<ion-content>和<textarea>之間任何元素(包括<ion-content>和<textarea>)樣式加上padding,都會導致本頁面切換時出現卡頓、過頭的問題。

ionic2中已經出現了新元素<ion-textarea>,可能解決了該問題

原因和解決方法還沒有找到,此坑待填。

 

七、調起微信支付失敗,返回-1。

微信支付開發文檔顯示-1報錯原因為:簽名錯誤、未注冊APPID、項目設置APPID不正確、注冊的APPID與設置的不匹配、其他異常等。

解決方法:將參數timestamp從字符串改成數字即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM