调用$ state.transitionTo方法后出现问题。
$ state.transitionTo('example',{},{reload:true});
第一次访问我的视图时,数据已正确加载。如果我手动返回我的应用程序并尝试访问同一页面,则会重新加载数据。 但是,当我调用$ state.transitionTo时,控制器内的代码不会执行,myList也不会更新。
以下是控制器的代码。
.controller('ExampleCtrl', function
($scope, $state, $stateParams, Service) {
$scope.myList= {};
var exampleCtrl = $scope;
ProdutorService.findAllData($scope.example.idExample).then(function(data){
exampleCtrl.myList = data;
});
}
我认为它可能与$ state.reload()中的这个错误有关: (控制器现在重新修复的错误,很快修复)。 https://github.com/angular-ui/ui-router/wiki/Quick-Reference#statereload
在状态转换后是否有强制执行控制器代码或调用控制器功能的选项?
我正在使用带离子和cordova的angularjs。这是一个移动应用程序。
答案 0 :(得分:2)
我找到了解决方案。
负责缓存的是离子框架。默认情况下,Ionic会缓存所有视图以提高性能。为了避免这种情况,需要在状态定义中添加cache:false。
.state('example', {
url: "/example",
templateUrl: 'templates/example.html',
controller: 'ExampleCtrl',
cache: false
})
这样,我的数据正在刷新。
答案 1 :(得分:0)
您还可以使用$ionicView.enter
侦听器来更新数据,这样就不需要重新创建整个视图。
向下滚动以查看this blog post
中的生命周期