2016-05-09 7 views
0

最近ionicで作業を開始し、ビューを再入力する際に​​データが更新されないという問題が発生しました。イオンについてもっと知ることで、私はそのビューのキャッシングを無効にすることができ、Ionicはそのたびにビューを再作成しなければならないことに気付きました。キャッシングが無効になっているときにIonic 1.3がNavBarを非表示にする

しかし、$state.go('stateName',{},{reload: true})とイオンキャッシングを無効にすると、別の問題が発生します。

コントローラがそのビューに対して2回呼び出され、ナビバー が表示されなくなります。

同じ問題はionic hereで開かれています。また、フォーラムに関するhereの問題に関する議論もあります。しかし、というマーキングの提案された解決策は私にとっては役に立たない。

$scope.$on('$ionicView.enter', function(e) { 
     $ionicNavBarDelegate.showBar(true); 
    }); 

マイナビゲーションバーの溶液で

可視しかしNOボタンとなり、また、コントローラは二回呼び出されています。

これは、ビューキャッシングを必要としないアプリケーションにとって非常に一般的なシナリオであるはずですので、これを回避するために適切な回避策を共有してください。

ありがとうございました!

答えて

0

$state.goメソッドで{reload: true}メソッドを使用しないでください。コントローラが2度呼び出される原因となるため、ビュー内のデータを更新する必要があります。イオンキャッシュコントローラので、データをビューにリダイレクトするたびに更新するために、あなたは$ionicViewライフサイクルフックすなわちbeforeEnterenterを、使用することができますloadedなど

.controller('AppController', function ($scope) { 
    $scope.$on('$ionicView.beforeEnter', function() { 
    // Fetch your data here so that it will be updated every time you redirect to this view 
    }) 
}); 

これは、コントローラにデータをフェッチするための非常にスケーラブルなアプローチであります

ライフサイクルの方法の詳細については、こちらをご覧ください。http://ionicframework.com/docs/api/directive/ionView/

関連する問題