Контроллер не инициализируется при использовании $location.path или $state.go

Контроллер не инициализируется на той же странице при использовании $state.go или $location.href

Я использую боковое меню в моем ionic для идентификатора категории передачи приложения на страницу продукта с помощью службы, но данные не обновляются в соответствии с текущим идентификатором категории. Когда я нажимаю aaa, я успешно перенаправляюсь на страницу продукта и предупреждаю 1. Снова формирую боковое меню, когда я нажимаю «bbb», я не получаю оповещения. Кроме того, если я сначала выбрал bbb, то будет предупреждено 2, и наоборот.

Шаблон бокового меню

<ion-item  nav-clear menu-close ng-click="allproductpage(1)">aaa</ion-item>
<ion-item  nav-clear menu-close ng-click="allproductpage(2)">bbb</ion-item>

Контроллер бокового меню

$scope.allproductpage= function(a){
angular.extend(inpsf.inps, {act_cat : a})  // inpsf is service
$location.path('/app/allproducts')
}

Страница продукта

.controller('AllproductsCtrl', function($scope,inpsf)
{
alert(inpsf.inps.act_cat)   
})

P.S Я использую $ionicConfigProvider.views.maxCache(0); в своем .config


person sam    schedule 20.02.2017    source источник


Ответы (2)


Вы должны передать параметр внутри объявления пути состояния и прослушивать $routeChangeSuccess, если используете $location, или $stateChangeSuccess, если используете $state, поскольку вы уже находитесь на '/app/allproducts', когда щелкаете второй пункт меню, а контроллер уже находится "на странице". Попробуйте что-то вроде:

.controller('AllproductsCtrl', function($scope,inpsf)
{
    $scope.$on('$routeChangeSuccess', function() {
        alert(inpsf.inps.act_cat)  
    })
})


//where you config your states..
$stateProvider.state('/app/allproducts/:cat', {

Контроллер бокового меню

$scope.allproductpage= function(a){
    angular.extend(inpsf.inps, {act_cat : a})  // inpsf is service
    $location.path('/app/allproducts').search({act_cat: a})
}
person Daniele    schedule 20.02.2017

Попробуйте использовать следующий способ.

$ionicHistory.clearCache().then(function(){ $state.go('yourpath') })
person coder    schedule 20.02.2017