如何在Angular $ routeParams对象中传递自定义值?

时间:2014-08-21 15:04:27

标签: angularjs angular-ui-router

配置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构建中会出现问题?

1 个答案:

答案 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
}