Я посылаю HTTP
запрос на app.run
часть углового приложения. Но проблема в том, что контроллер, который использует $rootScope.projects
, запускается до того, как $rootScope.projects
был создан и заполнен запросом HTTP
.
Как я могу предотвратить загрузку контроллера, если $rootScope.projects
не определено?
Вот мой HTTP
запрос:
$http({method : 'GET', url:'https://api.parse.com/1/classes/Project',
headers: { 'X-Parse-Application-Id':ParseID, 'X-Parse-REST-API-Key':ParseREST}})
.success(function(res) {
$rootScope.projects = res.results;
})
.error(function(err) {
console.log(err);
$rootScope.projects = [];
});
Вы используете 'ui-router'? Если это так, возникает вопрос «разрешить», чтобы делать такие вещи до создания экземпляра контроллера. – scniro
. Вы можете вручную загрузите свое угловое приложение, как только данные на стороне сервера будут восстановлены в обратном вызове AJAX: https://blog.mariusschulz.com/2014/ 10/22/асинхронно-bootstrapping-angularjs-applications-with-server-side-data –
Вы также можете инициализировать переменную проектов пустым массивом. – user1777136