2015-06-11 80 views
4

我有一個奇怪的問題,我不明白:

我使用的是路由器。爲什麼我得到這個結果時,我在app.run CONSOLE.LOG():

app.run(function ($state) { 
    console.log($state); // output: Object{params:{sitename:"mysite"},current:{...},... other properties} 
    console.log($state.params); // output: Object {} 

首先,我打印出$狀態,它有一個「PARAMS」屬性,該屬性是一個名爲「網站名稱」屬性的對象。 然後我打印出$ state.params屬性,它突然變空。

任何人都可以解釋這一點嗎?

順便說一句。也試過這個,但相同的結果

console.log($state["params"]); // output: Object {} 
+0

你試過'$ stateParams'服務? –

+2

是的,我做到了。 $ stateParams也是空的。但它不回答我的問題! – olefrank

回答

0

我遇到了同樣的問題。 我想可能是由於兩件事情: 1. $ stateParams不存在的時候調用 2. $ stateParams沒有綁定到調用者。

無論如何,我解決了這個問題,如下所示:

.run(['$rootScope', function ($rootScope) { 
     $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) { 
      $rootScope.toParams = toParams; 
     }); 
}]) 

並使用我的對象$ rootScope.toParams:

params: { 
      page: $rootScope.toParams.page, 
    } 
相關問題