2014-02-18 45 views
47

我知道我可以運行:

scope.$watch(someItem, function(){}) 

但我不能想出一個辦法來監視我的應用程序的$state.$current.name變化。

回答

129

它在文檔:https://github.com/angular-ui/ui-router/wiki#state-change-events

$rootScope.$on('$stateChangeStart', 
function(event, toState, toParams, fromState, fromParams){ 
    // do something 
}) 
+0

我還要提到的是$ rootScope $上( '$ stateChangeStart')必須放置在根狀態的順序。在每個狀態變化中都可用,如果我沒有錯過 –

+0

我得到'找不到變量:$ rootScope'我需要做什麼? – bryan

+9

您需要將$ rootScope注入到您要調用的控制器中。 – Eolis

16

這工作:

$scope.$watch(function(){ 
    return $state.$current.name 
}, function(newVal, oldVal){ 
    //do something with values 
}) 
+1

這幫助我了指令實現。謝謝! – rahulthakur319