2012-11-17 44 views
132

我使用this技術來加載數據。所以,我創建了以下解析功能:

NoteController.resolve = { 
    note: function($routeParams, Note) { 
     return Note.get($routeParams.key); 
    } 
} 

的問題是,$routeParams.keyundefinedresolve功能執行的時刻。它是正確的/錯誤?我該如何解決它?

回答

266

您需要改爲使用$route.current.params.key。在路線改變後,$routeParams僅更新。所以你的代碼應該沿着這些線看:

NoteController.resolve = { 
    note: function($route, Note) { 
     return Note.get($route.current.params.key); 
    } 
} 
+7

謝謝!爲什麼我需要$ routeParams呢? –

+2

我猜想http://docs.angularjs.org/api/ng.$ro​​uteParams是一個很好的API,當一個路由已經匹配和改變時。但它確實有點讓人困惑...... –

+1

對於使用'ui-router'的人來說,你可以在控制器 –