$ routeParams在解析功能中不起作用


138

我正在使用这种技术来加载数据。因此,我创建了以下解析函数:

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

存在的问题是,$routeParams.keyundefined在瞬间resolve函数执行。它是正确的/错误吗?我该如何解决?

Answers:


273

您需要$route.current.params.key改用。该$routeParams只更新的路线被改变。因此,您的代码应遵循以下原则:

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

7
谢谢!那为什么我需要$ routeParams?
fedor.belov 2012年

2
我猜想docs.angularjs.org/api/ng.$ro​​uteParams是当路由已经匹配和更改时很好的API。但这确实是有点令人困惑……
pkozlowski.opensource

1
您可以$routeParams在控制器内部使用
meconroy 2013年

13
对于使用ui-router和来到这里的人:$stateParams是路要走
petrkotek 2014年

如果您使用的是类似Ionic框架的内容,则将$stateParams.key在您的resolve函数内部使用ui-router,因为它使用的是@beret所说的。花了我一段时间才能意识到..
ObjectiveTruth
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.