首页 > 解决方案 > 升级 angular-ui-router 1.X:解决数据不工作

问题描述

我已将我的 Angular 版本升级到 1.7.8,并将 angular-ui-router 升级到 1.0.22。

升级后,我从路由器配置解析的数据不起作用(不再)。

路线配置:

$stateProvider.state('app', {
views: {
    '@' : {
        templateUrl: CONFIG.BasePath + '/article/views/layout.html'
    },
    'article@app': {
        templateUrl: CONFIG.BasePath + '/article/views/index.html',
        controller: 'ArticleController',
        resolve : {
            settings: function() {
                return {
                    someValue: ''
                };
            },
            deps: ['$ocLazyLoad', function($ocLazyLoad) {
                // other code
            }]
        }
    }
}})

控制器:

function MapController ($scope, settings) {
    console.log(settings);
}

MapController.$inject = [
    '$scope',
    'settings'
];

当我尝试从 resolves 对象访问它时,它可以工作,但这不是我想要的方式......

function MapController ($scope) {
    console.log($scope.myResolves.$state$.views['article@app'].resolve.settings());
}

MapController.$inject = [
    '$scope'
]

标签: angularjsangular-ui-router

解决方案


ui-router 1.0 不支持解析为视图:

我们不再处理在视图中声明的解析块。

您需要重写它并将解析移到状态上的解析块:

现在,将所有解析移到状态上的解析块:

阅读此处了解更多详细信息和示例:ui-router


推荐阅读