Próbuję leniwy załadować kontroler i szablon w moim pliku router.js routera UI, ale mam trudności z szablonu.Lazy szablon obciążenia i kontroler w kątowej UI-router
Sterownik ładuje się poprawnie, ale po załadowaniu musimy załadować szablon i właśnie tam coś pójdzie nie tak.
Po załadowaniu sterownika ocLazyLoad rozwiązujemy obietnicę kątową, która jest również zawarta w templateProvider. Problem polega na tym, że zamiast zwracania obietnicy (templateDeferred.promise) po załadowaniu pliku obietnica jest zwracana jako obiekt.
.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
}
})
Istnieje bardzo szczegółowa odpowiedź http://stackoverflow.com/a/27754025/1679310 jak używać ** RequireJs **, ** UI-Router ** i sprawiać, że wszystkie ładują rzeczy leniwie. Może tutaj można znaleźć inny sposób przekierowania http://stackoverflow.com/q/27465289/1679310 –
Radim, próbuję wczytać szablon z pliku HTML zamiast go wstawiać. – Rjdlee
Oto kolejny przykład użycia oclazyload http://www.syntaxsuccess.com/viewarticle/55484016883215ac604c68c3 – TGH