配置Angular $routeProvider
时,我想在routeObject
中指定自己的自定义值,并通过Angular注入的$route
对象检索它们。有没有正确的方法呢?
例如:
$routeProvider
.when('/administration/user/:id', {
templateUrl: 'client/app/views/users-details.html',
myCustomObject: { firstParam: "one", secondParam: "two"}
})
我不太确定如何在控制器中检索它。我看到我可以通过以下方式访问myCustomObject
:
$route.current.$$route.myCustomObject
然而,我不能不知道$$route
是否被视为私有变量而且不应该直接访问。但是,如果没有使用令人费解的$q
承诺来决心注入价值,我就不会看到另一种方式。
我错过了明显的地方吗?是通过$$route
对象以可接受的方式访问我的对象,还是在将来的Angular构建中会出现问题?
答案 0 :(得分:2)
正如runTarm所提到的,你可以使用resolve并只从resolve函数而不是promise中返回一个对象。 e.g。
$routeProvider
.when('/administration/user/:id', {
templateUrl: 'client/app/views/users-details.html',
resolve: {
myCustomObject: function() {
return { firstParam: "one", secondParam: "two"};
}
},
controller: 'MyCtrl'
})
控制器:
var MyCtrl = function(myCustomObject) {
//you should be able to use myCustomObject here
}