Javascript $state.go()不';离子应用中的t型负载控制器

Javascript $state.go()不';离子应用中的t型负载控制器,javascript,angularjs,angular-ui-router,ionic-framework,ionic,Javascript,Angularjs,Angular Ui Router,Ionic Framework,Ionic,使用以下代码,首次加载id为0的页面时,控制器没有问题。但是,当同一页面再次加载相同的id=0时,它不会加载控制器 $state.go('tab.dash', { id: $rootScope.products[CONSTANTS.i].id }, { reload: true }); 这是怎么发生的?请给我一个解决方案。我遇到了一个类似的问题,每次访问选项卡时,我都需要重新计算统计数据 您需要禁用视图缓存。您可以在管线设置中执行此操作。例如: .state('tab.stats',

使用以下代码,首次加载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
})

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


你需要显示更多的代码来全面了解问题所在。为了更好的性能,请尝试添加此cache view=“false”@JesúsQuintana,非常感谢它对meThe有效。reload属性是angular ui路由器的属性,而不是ionic。默认情况下,爱奥尼亚正在缓存视图和控制器。看看能不能解决你的问题
 $scope.$on('$ionicView.enter', function () {
            // ur stuff in here....
        });