ionic controller not called after $state.go

2019-05-02 10:23发布

问题:

i have a controller the get data from my back-end application, when opening the state for the first time from the first controller it loads the data, but when it try to open it again it does not load the new data

here is how

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

here is the called balanceInquery state controller

.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'
      });
    });
})

回答1:

I had a similar problem. The first time was shown only after reload. The reason is view caching. Disable it with cache: false, like in my specific case:

$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
  })


回答2:

This is due to view caching, which can be disabled in a variety of ways. See http://ionicframework.com/docs/nightly/api/directive/ionNavView/ for more details.