我使用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”的控制器未注册。