我正在使用Ionic开发应用,但缓存并未按预期工作。
每次从root.home.notifs
切换到root.home.chats
时,chats
视图都会刷新(其控制器会重新初始化)。
我有两个标签:
<ion-footer-bar>
<ion-tabs class="tab-bottom tabs-striped">
<ion-tab icon="ion-ios-chatboxes-outline" ui-sref="root.home.chats">
</ion-tab>
<ion-tab icon="ion-ios-heart-outline" ui-sref="root.home.notifs">
</ion-tab>
</ion-tabs>
</ion-footer-bar>
这些状态(我的控制器是空的):
.state('root.home', {
abstract: true,
cache : true,
url: '/home',
templateUrl: 'components/home/templates/home.html'
})
.state('root.home.chats', {
url: '/chats',
cache : true,
controller: 'ChatCtrl',
templateUrl: 'components/home/templates/home.chats.html'
})
.state('root.home.notifs', {
url: '/notifs',
cache : true,
controller: 'NotifCtrl',
templateUrl: 'components/home/templates/home.notifs.html'
})
每个视图都有cache-view="true"
,我已按照$ionicConfigProvider.views.maxCache(100)
注意:我注意到此错误取决于我首先导航到的状态。有一个名为$state.$go('root.home.notifs')
的身份验证系统。更改此选项会更改哪个视图正确缓存
有关如何解决此问题的任何提示?
答案 0 :(得分:3)
尝试使用此功能缓存转发视图$ionicConfigProvider.views.forwardCache(true);
答案 1 :(得分:1)
试试这个:
.state('root.home', {
abstract: true,
cache : true,
url: '/home',
templateUrl: 'components/home/templates/home.html'
})
.state('root.home.chats', {
url: '/chats',
cache : true,
controller: 'ChatCtrl',
templateUrl: 'components/home/templates/home.chats.html'
})
.state('root.home.notifs', {
url: '/notifs',
cache : true,
controller: 'NotifCtrl',
templateUrl: 'components/home/templates/home.notifs.html'
})
答案 2 :(得分:-1)
只需在HTML中使用缓存视图即可。无需在控制器上使用它。
如果您要刷新页面,请使用<ion-view title="Dashboard" cache-view="false">
。
但是,如果您要缓存您的网页,请添加<ion-view title="Dashboard" cache-view="true">
或仅<ion-view title="Dashboard">