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

$state.go() doesn't load controller in ionic application

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

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

这是怎么发生的?请给我一个解决方案。

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

您需要禁用视图缓存。您可以在路线设置中这样做。例如:

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

好吧,当你缓存视图时(默认情况下它是真的)控制器只在第一次加载并且在随后的导航中它会附加和分离范围。缓存有助于提高单页应用程序的性能。如果您不想禁用缓存,那么您可以使用离子视图事件,例如(输入、离开、加载等)。

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