ui-路由器 |解决依赖 |强制重新加载 |强制刷新
ui-router | resolve dependency | force reload | force refresh
我的app.js里有这个:
.state('tab.interview', {
url: '/interview/:survey_id',
views: {
'tab.interview': {
templateUrl: 'templates/tab.interview.html',
controller: 'interviewController'
}
},
resolve: {
duh: function() {
console.log('HOHOHO');
return new Date();
}
}
})
我的tabs.html里有这个:
<ion-tabs class="tabs-icon-top tabs-color-active-positive">
<ion-tab title="Organizer" icon-off="ion-ios-list-outline" icon-on="ion-ios-list" ui-sref="tab.survey">
<ion-nav-view name="tab.survey"></ion-nav-view>
</ion-tab>
<ion-tab title="Interview" icon-off="ion-chatbox" icon-on="ion-chatbox-working" ui-sref="tab.interview" ui-sref-opts="{reload: true, inherit: false}">
<ion-nav-view name="tab.interview"></ion-nav-view>
</ion-tab>
</ion-tabs>
你可以看到我已经为选项卡设置了这个选项:ui-sref-opts="{reload: true, inherit: false}" 。我认为它会强制重新加载控制器及其解析依赖项。
我有一个这样的控制器:
$scope.$on('$ionicView.enter', function() {
console.log('.....');
console.log(duh);
console.log('.....');
});
我在控制台中看到的是:
每次切换到该选项卡时都会打印 HOHOHO。这告诉我创建了 "duh" 依赖项的新实例。
但是... ionic.enter 中的 console.log 给了我相同的值(时间 _first_time_ 我加载那个选项卡)。例如:2015 年 12 月 28 日星期一 08:26:02 GMT-0600。始终相同的值。好像新创建的 duh (Date) 实例没有(重新)绑定到控制器中的那个变量。
我哪里做错了?每次我切换到该选项卡时,我的应用程序必须刷新 duh(特别是当 $state.go 中的 "reload" 选项设置为 true 时)。
提前致谢,
拉卡
您可以禁用给定状态的缓存:
.state('tab.interview', {
cache: false,
url: '/interview/:survey_id',
views: {
'tab.interview': {
templateUrl: 'templates/tab.interview.html',
controller: 'interviewController'
}
},
resolve: {
duh: function() {
console.log('HOHOHO');
return new Date();
}
}
})
我的app.js里有这个:
.state('tab.interview', {
url: '/interview/:survey_id',
views: {
'tab.interview': {
templateUrl: 'templates/tab.interview.html',
controller: 'interviewController'
}
},
resolve: {
duh: function() {
console.log('HOHOHO');
return new Date();
}
}
})
我的tabs.html里有这个:
<ion-tabs class="tabs-icon-top tabs-color-active-positive">
<ion-tab title="Organizer" icon-off="ion-ios-list-outline" icon-on="ion-ios-list" ui-sref="tab.survey">
<ion-nav-view name="tab.survey"></ion-nav-view>
</ion-tab>
<ion-tab title="Interview" icon-off="ion-chatbox" icon-on="ion-chatbox-working" ui-sref="tab.interview" ui-sref-opts="{reload: true, inherit: false}">
<ion-nav-view name="tab.interview"></ion-nav-view>
</ion-tab>
</ion-tabs>
你可以看到我已经为选项卡设置了这个选项:ui-sref-opts="{reload: true, inherit: false}" 。我认为它会强制重新加载控制器及其解析依赖项。
我有一个这样的控制器:
$scope.$on('$ionicView.enter', function() {
console.log('.....');
console.log(duh);
console.log('.....');
});
我在控制台中看到的是:
每次切换到该选项卡时都会打印 HOHOHO。这告诉我创建了 "duh" 依赖项的新实例。
但是... ionic.enter 中的 console.log 给了我相同的值(时间 _first_time_ 我加载那个选项卡)。例如:2015 年 12 月 28 日星期一 08:26:02 GMT-0600。始终相同的值。好像新创建的 duh (Date) 实例没有(重新)绑定到控制器中的那个变量。
我哪里做错了?每次我切换到该选项卡时,我的应用程序必须刷新 duh(特别是当 $state.go 中的 "reload" 选项设置为 true 时)。
提前致谢, 拉卡
您可以禁用给定状态的缓存:
.state('tab.interview', {
cache: false,
url: '/interview/:survey_id',
views: {
'tab.interview': {
templateUrl: 'templates/tab.interview.html',
controller: 'interviewController'
}
},
resolve: {
duh: function() {
console.log('HOHOHO');
return new Date();
}
}
})