状态转换后重新加载数据

Reload data after state transition

调用 $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

是否有任何选项可以强制执行控制器代码或在状态转换后调用控制器函数?

我将 angularjs 与 ionic 和 cordova 一起使用。这是一个移动应用程序。

我找到了解决方案。

离子框架负责缓存。

默认情况下,Ionic 缓存所有视图以提高性能。为了避免这种情况,需要在状态定义中添加一个cache:false。

        .state('example', {
            url: "/example",
            templateUrl: 'templates/example.html',
            controller: 'ExampleCtrl',
            cache: false
        })

这样,我的数据正在刷新。

您还可以使用 $ionicView.enter 侦听器来更新数据,这样就不需要重新创建整个视图。

向下滚动以查看 this blog post

中的生命周期