Angularjs模板视图没有被缓存,它每次都会刷新



仔细想想,我有一个选项卡,其中有两个视图,默认视图和辅助视图。用户必须单击按钮(在默认视图中(才能进入辅助视图。。。并且在次视图中必须单击按钮才能返回到默认视图。

我在两个视图上都有cache: true,,缓存在默认视图上工作(按预期(,但在辅助视图上不工作。每次用户转到辅助视图时,都会通过调用服务器来刷新内容。无论用户在哪个视图上,如果用户转到另一个选项卡并再次返回,默认视图或辅助视图都不会刷新(按预期(,只有在从默认视图切换到辅助视图时才会刷新。

控制器中没有任何其他视图正在扰乱或处理缓存。我该如何解决这个问题,或者我该寻找可能导致这个问题的原因?

在app.js:中

.state('tab.current', {  // primary/default view
cache: true,
url: '/current',
params: tabParams,
views: {
'tab-current': {
templateUrl: 'templates/tab-current.html',
controller: 'CurrentCtrl'
}
}
})
.state('tab.current-detail', {
cache: true,
url: '/current/:ceID',
params: tabParams,
views: {
'tab-current': {
templateUrl: 'templates/detail-current.html',
controller: 'CurrentDetailCtrl'
}
}
})

.state('tab.past', {  // secondary view
cache: true,
url: '/past',
params: tabParams,
views: {
'tab-current': {
templateUrl: 'templates/tab-past.html',
controller: 'PastCtrl'
}
}
})
.state('tab.past-detail', {
cache: true,
url: '/past/:ceID',
params: tabParams,
views: {
'tab-current': {
templateUrl: 'templates/detail-past.html',
controller: 'PastDetailCtrl'
}
}
})  

我正在使用离子标签:

<ion-tabs id="allTabs" delegate-handle="mainTabs" class="tabs-icon-bottom tabs-bottom tabs-color-active-positive" style="">
<div id="allTabsBar" style="height:100%;">
<!-- Home Tab   -->
<ion-tab id="homeTab" class="icon barIconHeight" icon-off="ion-home" icon-on="ion-home" href="#/tab/home" >
<ion-nav-view id="tab-home" name="tab-home"></ion-nav-view>
</ion-tab>
<!-- Club Tab   -->
<ion-tab id="clubTab" class="icon barIconHeight" icon-off="ion-people" icon-on="ion-people" href="#/tab/clubs" >
<ion-nav-view id="tab-clubs" name="tab-clubs"></ion-nav-view>
</ion-tab>
<!-- Search Tab   -->
<ion-tab id="searchTab" class="icon barIconHeight" icon-off="ion-search" icon-on="ion-search" href="#/tab/search" >
<ion-nav-view id="tab-search" name="tab-search"></ion-nav-view>
</ion-tab>
<!-- Settings Tab   -->
<ion-tab id="menuTab" class="icon barIconHeight" icon-off="ion-ios-settings-strong" icon-on="ion-ios-settings-strong" href="#/tab/menu" >
<ion-nav-view id="tab-menu" name="tab-menu"></ion-nav-view> <!-- class="icon ion-ios-settings-strong" -->
</ion-tab>
</div>
</ion-tabs

我认为您的问题很可能是您对href的使用。AngularJS可能没有机会将您的哈希路由传递给定位服务。由于模板缓存不受任何持久层(本地/会话存储(的支持,因此重新加载整个页面将清除任何缓存的模板。

参见ngHref

最新更新