Angularjs ui路由器抽象状态与解析

Angularjs ui路由器抽象状态与解析,angularjs,angular-ui-router,Angularjs,Angular Ui Router,是否可以使用需要解析数据的ui路由器创建抽象状态?我需要加载页面的上半部分的个人资料信息,然后有一个子导航加载页面底部的其他详细信息。其思想是抽象状态每次都会加载配置文件信息,而不管我处于哪个子状态。它似乎不起作用 例如: .state('app.profile', { abstract: true, url: 'user/:username', views: { content: { templateUrl: 'views/fro

是否可以使用需要解析数据的ui路由器创建抽象状态?我需要加载页面的上半部分的个人资料信息,然后有一个子导航加载页面底部的其他详细信息。其思想是抽象状态每次都会加载配置文件信息,而不管我处于哪个子状态。它似乎不起作用

例如:

.state('app.profile', {
    abstract: true,
    url: 'user/:username',
    views: {
        content: {
            templateUrl: 'views/frontend/profile.html',
            controller: 'ProfileCtrl',
            resolve: {
                data: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
                    var username = $stateParams.username;
                    return ProfileService.getProfile(username);
                }]
            }
        }
    }
})
.state('app.profile.something', {
    url: '',
    views: {
        profile: {
            templateUrl: 'views/frontend/profile.something.html',
            controller: 'ProfileCtrl',
            resolve: {
                data: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
                    var username = $stateParams.username;
                    return ProfileService.getProfileSomething(username);
                }]
            }
        }
    }
})

这里的解决方案是区分已解析数据的名称。检查以下答案:

及其

因此,在我们的情况下,我们需要在家长中进行这种改变

resolve: {
    dataParent: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
        var username = $stateParams.username;
        return ProfileService.getProfile(username);
    }]
}
这是在孩子身上

resolve: {
    dataChild: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
        var username = $stateParams.username;
        return ProfileService.getProfileSomething(username);
    }]
}
因此,与在父级和子级中使用resolve:{data:…}不同,我们将使用以下内容:

// parent state
resolve : { dataParent: ... } 
// child state
resolve : { dataChild: ... } 

一个应该比其他词更好…

将url添加到子状态,并将url属性清空到父状态。那么,对不起,我不知道我是否明白你的意思。那不行。$stateParams.username最终在抽象状态上未定义。看起来我还必须创建单独的控制器,因为我只想注入我正在捕获的数据,对吗?我想说,不同状态的不同控制器是一种好的做法。大多数情况下,如果父母和孩子处理不同的事情。。。有帮助吗?很高兴看到这一点!;)享受令人惊叹的UI路由器;)