Ленивый шаблон загрузки и контроллер в угловом UI-Router
Я пытаюсь лениво загрузить контроллер и шаблон в мой файл router.js UI-Router, но испытываю трудности с шаблоном.
Контроллер загружается правильно, но после того, как он загружен, мы должны загрузить шаблон, и именно здесь все идет не так.
После того, как ocLazyLoad загрузит контроллер, мы разрешаем угловое обещание, которое также включено в templateProvider. Проблема заключается в том, что вместо возврата обещания (templateDeferred.promise) после завершения загрузки файла обещание возвращается как объект.
.state('log_in', {
url: '/log-in',
controller: 'controllerJsFile',
templateProvider: function($q, $http) {
var templateDeferred = $q.defer();
lazyDeferred.promise.then(function(templateUrl) {
$http.get(templateUrl)
.success(function(data, status, headers, config) {
templateDeferred.resolve(data);
}).
error(function(data, status, headers, config) {
templateDeferred.resolve(data);
});
});
return templateDeferred.promise;
},
resolve: {
load: function($templateCache, $ocLazyLoad, $q) {
lazyDeferred = $q.defer();
var lazyLoader = $ocLazyLoad.load ({
files: ['src/controllerJsFile']
}).then(function() {
return lazyDeferred.resolve('src/htmlTemplateFile');
});
return lazyLoader;
}
},
data: {
public: true
}
})