【问题标题】:Angular UI + UI Router: How to inherit Resolved statesAngular UI + UI Router:如何继承已解决的状态
【发布时间】:2023-03-11 15:00:02
【问题描述】:

我有一个包含 3 个子状态的父状态。父状态使用 Promise 检索数据并在对象(名为“数据”)中返回已解析的数据,以便控制器和视图可以访问它。一些子状态还需要解析的父数据来定义他们自己的名为数据的对象。但似乎从兄弟状态转换时,它们的解析永远不会到达(相应状态定义中的断点永远不会被命中)。

简而言之:当从状态“settings.account.person”转移到同级状态“settings.account.password”时,我希望执行解析语句。目前它根本没有被击中......

州:

.state('settings.account', {
    url: '/account'
    ,resolve: {
        menu: ['menu','MenuService', function (menu,MenuService) {
            return MenuService.retrieveSubMenuByParentUrl(menu,'/settings/account');
        }],
        account: ['UserManagementService',function(UserManagementService) {
            return UserManagementService.account();
        }],
        data: ['menu',function (menu) {
            return {menu:menu};
        }]
    }
    ,views: {
        'setting@settings': {
            templateUrl: '/app/components/settings/account/views/tabpanel.html'
            ,controller: 'AccountController'
        }
    }
})
.state('settings.account.person', {
    url: '/person',
    resolve: {
        languages: ['APIService',function(APIService) {
            return APIService.call(AppConfig.API_ENDPOINTS.language);
        }],
        data: ['menu','account','languages',function(menu,account,languages){
            return {
                menu: menu,
                account: account,
                languages: languages
            };
        }]
    }
    ,views: {
        'tabContent@settings.account': {
            templateUrl: '/app/components/settings/account/views/person.html'
            ,controller: 'AccountController'
        }
    }
})
.state('settings.account.password', {
    url: '/password'
    ,data: ['account',function(account){
        return {
            account: account
        };
    }]
    ,views: {
        'tabContent@settings.account': {
            templateUrl: '/app/components/settings/account/views/password.html'
            ,controller: 'AccountController'
        }
    }
})
.state('settings.account.delete', {
    url: '/delete'
    ,data: ['account',function(account){
        return {
            id: account.id
        };
    }]
    ,views: {
        'tabContent@settings.account': {
            templateUrl: '/app/components/settings/account/views/deleteAccount.html'
            ,controller: 'AccountController'
        }
    }
})

【问题讨论】:

  • 目前您的 settings.account.password 没有“解决”,它有一个“数据”,略有不同。更改它以解决它,它可能会工作。

标签: angularjs angular-ui-router resolve


【解决方案1】:

糟糕.. 我看到在状态“settings.account.password”和“settings.account.delete”中我忘记了一半的解析块......难怪它没有被击中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多