$ state.go()不会在离子应用程序中加载控制器

时间:2015-04-20 08:09:23

标签: javascript angularjs angular-ui-router ionic-framework ionic

使用以下代码,当第一次加载id=0的页面时,控制器没有问题。但是,当同一页面再次加载相同的id=0时,它不会加载控制器。

$state.go('tab.dash', {
  id: $rootScope.products[CONSTANTS.i].id
}, {
  reload: true
});

它是如何发生的?请给我一个解决方案。

2 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,我每次访问标签时都需要重新计算统计数据。

您需要禁用视图缓存。您可以在路径设置中执行此操作。例如:

.state('tab.stats', {
 url: '/stats',
 views: {
   'tab-stats': {
     templateUrl: 'templates/tab-stats.html',
     controller: 'StatsCtrl'
   }
 },
 cache: false
})

答案 1 :(得分:0)

好吧,当您缓存视图时(默认情况下为true),控制器仅在第一次加载时,在后续导航中它将附加和分离范围。缓存有助于提高单页应用程序的性能。如果您不想禁用缓存,则使用离子视图事件,如(输入,离开,加载等)。

 $scope.$on('$ionicView.enter', function () {
            // ur stuff in here....
        });