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