在$ state.go之后没有调用离子控制器

时间:2015-03-22 11:15:02

标签: angularjs javascript-events ionic-framework

我有一个控制器从我的后端应用程序获取数据,当第一次从第一个控制器打开状态时它加载数据,但是当它再次尝试打开它时它不会加载新数据< / p>

这是如何

&#13;
&#13;
if (selectedServiceID == "000")
{
  $state.go('balanceInquery'); 
};
&#13;
&#13;
&#13;

这里是被称为balanceInquery的状态控制器

&#13;
&#13;
.controller('BalanceInqueryController', function($scope, getAccountBalanceService, $state, $ionicLoading, $ionicPopup) {
  getAccountBalanceService.get(username, pass, customerID, serviceAccID, langID)
    .success(function(data) {
      $scope.custBalance = data;
    })
    .error(function(data) {
      var alertPopup = $ionicPopup.alert({
        title: 'Error!',
        template: 'Sorry something went wrong'
      });
    });
})
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:9)

我有类似的问题。第一次仅在重新加载后显示。原因是视图缓存。使用 cache:false 禁用它,就像我的具体情况一样:

$stateProvider
  .state('login', {
    url: '/login',
    controller: 'LoginCtrl as vm',
    templateUrl: 'app/login/login.html'
  })
  .state('tab', {
    url: '/tab',
    abstract: true,
    templateUrl: 'templates/tabs.html',
    cache: false
  })

答案 1 :(得分:3)

这是由于视图缓存,可以通过各种方式禁用。有关详细信息,请参阅http://ionicframework.com/docs/nightly/api/directive/ionNavView/