【发布时间】:2016-11-23 13:22:21
【问题描述】:
我有一个具有多个选项卡的 Ionic 应用程序。要在标签之间导航,我使用
$state.go('tabname',{params:params})
这一切都很好,但是如果我将参数传递给 $state.go 它会重新加载整个角度控制器。
我在 Angular 控制器的顶部放置了一个 console.log。这会在第一次加载选项卡时注销(很好)然后如果我导航到另一个选项卡然后导航回来它不会记录(很好)但是如果我导航到另一个选项卡并调用
$state.go('tabname', {paramKey:'paramValue'})
它记录(不好)告诉我与该选项卡关联的控制器正在重新加载。这给我带来了很多问题。有没有办法告诉视图不要重新加载控制器?
这是相关选项卡的 $stateProvider .state:
.state('tab.ask', {
url: '/ask',
views: {
'tab-ask': {
templateUrl: 'templates/tab-ask.html',
controller: 'AskCtrl'
}
},
params: {
'paramKey': null
}
})
【问题讨论】:
-
尝试添加cache:true,tab状态下的object Ref:ionicframework.com/docs/api/directive/ionNavView
-
你确定
$scope.on是你想要的吗?我应该是$scope.$on,第二,你为什么不用ui-sref指令或者$state.go函数呢? -
添加 cache:true 并没有解决问题(它在文档中说缓存的默认值无论如何都是 true)。我在我的问题中输入了错误的代码我实际使用的函数调用是 $state.go() 我已经更新了我的问题
-
你试过
$state.transitionTo('tabname', {paramKey: 'paramValue'}, {notify: false})吗? -
刚刚尝试使用 notify:flase 进行转换,但无法解决问题。
标签: javascript angularjs cordova ionic-framework