控制器是在DOM中加载,但视图没有加载,无法find控制器oclazyload与玉(pugjs)

我为我的项目和angular-ui-routing使用angular 1.6来与PugJs进行HTML模板的路由。 我试图在我的应用程序中实现Lazyload,但不知何故,它不工作可能是由于玉。 代码:

var app = angular.module('myApp',['ui.router','oc.lazyLoad']); app.config(['$ocLazyLoadProvider', function($ocLazyLoadProvider { $ocLazyLoadProvider.config({ debug: true, modules: [{ name: 'js', files: ['js/*'] }] }); }]); .state("exampleState", { url: '/example', templateUrl: '/example', controller:'exampleCtrl', resolve: { deps: ['$ocLazyLoad', function($ocLazyLoad) { return $ocLazyLoad.load({ files: ['/js/exampleCtrl.js'] }) }] } }) 

控制器:

 app.controller('exampleCtrl',function($scope){ console.log('controller loaded'); }); 

在前端我使用节点将这些玉转换成HTML,所以当“templateUrl”被路由服务访问时,它将被redirect到这个代码:

 app.get('/example', function(req, res) { res.render('/example'); }); 

这将加载example.jade在视图中。 我在控制台中得到这个

[$ controller:ctrlreg]名称为“exampleCtrl”的控制器未注册。

即使控制器文件被加载到DOM中,并且视图也没有被渲染。 任何有关问题的帮助欢迎。 谢谢

经过太多的search和尝试,我已经find了解决scheme,在构build控制器时,问题是模块的全局variables。 而不是使用

 app.controller('exampleCtrl',function($scope){ console.log('controller loaded'); }); 

我用angular.module('myApp').controller(,,,);

参考: ocLazyLoad问题

我认为你应该做一点点不同的事情。 尝试这个:

 $stateProvider.state('exampleState', { url: "/example", views: { "exampleLazyLoadView": { controller: 'exampleCtrl', templateUrl: '/example.html' } }, resolve: { // Any property in resolve should return a promise and is executed before the view is loaded loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) { return $ocLazyLoad.load('/js/exampleCtrl.js'); }] } });