Angularjs ui路由器抽象状态与解析
是否可以使用需要解析数据的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
.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路由器;)