Контроллер загружен в DOM, но вид не загружен и не может найти контроллер-oclazyload с jade(pugjs)
Я использую angular 1.6 для моего проекта и angular-ui-routing для маршрутизации с PugJs для HTML-шаблонов. Я пытаюсь реализовать Lazyload в своем приложении, но почему-то его не работает из-за jade. код :
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');
});
и на интерфейсе я использую узел для преобразования этих jade в HTML, поэтому, когда "templateUrl" доступен службами маршрутизации, он будет перенаправлен на этот код:
app.get('/example', function(req, res) {
res.render('/example');
});
загружает образец.Джейд в поле зрения. Я получаю это в консоли
[$controller:ctrlreg] контроллер с именем "exampleCtrl" не зарегистрирован.
даже после того, как файл контроллера загружен в DOM, а также view не рендеринг. любая помощь по вопросу приветствуется. Спасибо
2 ответов
после слишком много поиска, и я нашел решение, проблема была глобальной переменной модуля при построении контроллера. Вместо использования
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');
}]
}
});