2015-08-21 126 views
3

菜單位於<div>塊之外,該塊通過UI路由器的ui-view呈現。Angular UI路由器:訪問ui-view外部的狀態參數

爲了根據狀態參數修改菜單,我需要從菜單控制器中訪問當前狀態參數,但$stateParams變量在ui-view部件外部使用時是空對象。

我該如何訪問它們?

angular.module('myapp').controller('MenuCtrl', ['$scope', '$rootScope', '$stateParams', '$meteor', '$filter', 
    function($scope, $rootScope, $stateParams, $meteor, $filter) { 
    // ... $stateParams equals {} 
    } 
]); 
+1

您可以使用'$ rootScope' –

+0

或使用服務 – andyhasit

回答

4

嘗試觀看在您的控制器狀態的變化......

angular.module('myapp').controller('MenuCtrl', ['$scope', '$rootScope', '$meteor', '$filter', 
    function($scope, $rootScope, $meteor, $filter) { 

     //this watches for state changes 
     $rootScope.$on('$stateChangeStart', 
      function(event, toState, toParams, fromState, fromParams){ 
       //do something when state changes 
       state = toState.name; 
       postid = toParams.postid; 
       console.log(toParams); //this is the stateParams you need 
      }); 

    } 
]); 
0

確保你注入$stateParams到控制器中?你能提供你已有的代碼片段嗎?

+2

在'ui-view'之外的控制器中注入'$ stateParams'會給我一個空對象('{}')。 – ideaboxer

相關問題