配置 Angular $routeProvider
时,我想在 routeObject
中指定我自己的自定义值,并通过 $route
检索它们Angular 注入(inject)的对象。有正确的方法吗?
例如:
$routeProvider
.when('/administration/user/:id', {
templateUrl: 'client/app/views/users-details.html',
myCustomObject: { firstParam: "one", secondParam: "two"}
})
我不太确定如何在 Controller 中检索它。我发现我可以通过以下方式访问 myCustomObject
:
$route.current.$$route.myCustomObject
但是,我忍不住想知道 $$route
是否被视为私有(private)变量,不应该直接访问。但是,由于缺少在解析中使用复杂的 $q
Promise 来注入(inject)值,我没有看到其他方法。
我是否在某个地方遗漏了明显的内容?通过 $$route
对象访问我的对象是可接受的方式吗?或者这在未来的 Angular 构建中可能会出现问题吗?
最佳答案
正如 runTarm 提到的,您可以使用解析并仅从解析函数返回一个对象而不是 promise 。例如
$routeProvider
.when('/administration/user/:id', {
templateUrl: 'client/app/views/users-details.html',
resolve: {
myCustomObject: function() {
return { firstParam: "one", secondParam: "two"};
}
},
controller: 'MyCtrl'
})
Controller :
var MyCtrl = function(myCustomObject) {
//you should be able to use myCustomObject here
}
关于angularjs - 如何在 Angular $routeParams 对象中传递自定义值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25429765/