如何修复在状态更改期间延迟加载依赖项时出现错误:“ $ controller:ctrlreg”

时间:2019-06-23 09:13:46

标签: angularjs angular-ui-router oclazyload

我使用ui-router安装了angularjs应用程序,并尝试延迟加载依赖项,但收到“ $ controller:ctrlreg”错误。

我尝试了@kasper Lewau从链接Using ui-router and ocLazyLoad to load a controller and set the partial to it给出的答案

但是不能用。我正在使用AngularJS v1.7.8,ui-router v1.0.22,ocLazyLoad v1.0.10。

**--app file.--**

    (function () {
        'use strict';

        angular.module('medapp', [
            'ui.router',
            'oc.lazyLoad'
        ])
    })();

****--app route file--****

    (function () {
        'use strict';
        angular.module('medapp').config(config)
        config.$inject = ['$stateProvider', '$urlRouterProvider', '$locationProvider', '$urlMatcherFactoryProvider', '$ocLazyLoadProvider'];
        function config($stateProvider, $urlRouterProvider, $locationProvider, $urlMatcherFactoryProvider, $ocLazyLoadProvider) {
            $urlMatcherFactoryProvider.caseInsensitive('true');
            $locationProvider.hashPrefix('');
            $urlRouterProvider.otherwise('/');
            $stateProvider
            .state('home', {
                url: '/',
                views: {
                    'header': {
                        templateUrl: '/sag/app/template/header/header.html',
                        resolve: {
                            load: ['$ocLazyLoad', function ($ocLazyLoad) {
                                return $ocLazyLoad.load({
                                    serie: true,
                                    files: [
                                        '/sag/app/template/header/header.app.js',
                                        '/sag/app/template/header/header.routes.js',
                                        "/sag/app/template/header/header.controller.js",
                                    ]
                                });
                            }]
                        },
                        controller: 'HeaderController',
                        controllerAs: 'hdr',
                    },
                }
            })
        }
    })();


**--header app file--**

    (function () {
        'use strict';
        angular
            .module('uiTemplate.header', [])
    })();

**--header controller--**

    (function () {
        'use strict';
        angular.module('uiTemplate.header')
            .controller('HeaderController', HeaderController);
        HeaderController.$inject = ['$log', '$scope'];
            function HeaderController($log, $scope) {
                var hdr = this;
            }
    })();

错误:$ controller:ctrlreg 没有注册具有该名称的控制器。 名为“ HeaderController”的控制器未注册。

0 个答案:

没有答案