从抽象状态访问$ routeparams

时间:2014-05-25 22:11:55

标签: angularjs angular-ui

在这种情况下,可以在抽象的ProfileCtrl中访问$ routeParams吗?

.state('profile', {
            abstract: true,
            url: "/profile",
            templateUrl: 'profile.html',
            controller: 'ProfileCtrl'
        })
        .state('profile.items', {
            url: "/:id/items",
            views: {
                'profile': {
                    templateUrl: 'ProfileItems.html',
                    controller: 'ProfileItemsCtrl'
                }
            }
        })

1 个答案:

答案 0 :(得分:1)

ProfileCtrl只能获取它的url参数。使用以下内容:

.state('profile', {
    abstract: true,
    url: "/profile/:id",
    templateUrl: 'profile.html',
    controller: 'ProfileCtrl'
})
.state('profile.items', {
    url: "/items",
    views: {
        'profile': {
            templateUrl: 'ProfileItems.html',
            controller: 'ProfileItemsCtrl'
        }
    }
})

这样ProfileCtrl就能获得个人资料ID。它可以获取配置文件数据并将其附加到$ scope。这样,配置文件状态的任何子节点都可以访问配置文件数据(由于$ scope继承)。

希望这有帮助!