使用$ location.path或$ state.go时,控制器不会初始化

时间:2017-02-20 07:35:42

标签: javascript angularjs cordova ionic-framework

使用$ state.go或$ location.href

时,Controller未在同一页面上初始化

我正在使用sidemenu在我的离子应用程序中使用服务将类别ID传递给产品页面,但数据未更新对应于当前类别ID。当我点击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 我在.config

中使用$ionicConfigProvider.views.maxCache(0);

2 个答案:

答案 0 :(得分:0)

如果使用$routeChangeSuccess,则应该在状态路径声明中传递参数并监听$location,如果使用$stateChangeSuccess则使用$state,因为您已经在'/app/allproducts' 1}}当您单击第二个菜单项并且控制器已经“在页面中”时。尝试类似:

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

答案 1 :(得分:0)

尝试使用以下方式。

$ionicHistory.clearCache().then(function(){ $state.go('yourpath') })