gpt4 book ai didi

Angularjs ui-router 抽象状态与解析

转载 作者:行者123 更新时间:2023-12-04 02:07:28 24 4
gpt4 key购买 nike

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

示例:

.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);
}]
}
}
}
})

最佳答案

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

  • angular ui-route state parent and resolve (nested resolves)

  • 和它的 plunker

    所以在我们的例子中,我们需要在 parent 中进行这种更改
    resolve: {
    dataParent: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
    var username = $stateParams.username;
    return ProfileService.getProfile(username);
    }]
    }

    这在 child 身上
    resolve: {
    dataChild: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
    var username = $stateParams.username;
    return ProfileService.getProfileSomething(username);
    }]
    }

    因此,与其在 parent 和 child 中使用 resolve : { data: ... } ,我们还有这些:
    // parent state
    resolve : { dataParent: ... }
    // child state
    resolve : { dataChild: ... }

    working example应该比其他词好...

    关于Angularjs ui-router 抽象状态与解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27168835/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com