У меня есть директива «ng-init» в моем HTML, которая инициализирует значение «data.id» в моей модели данных Angular.js. Скажем, пока я не могу изменить, как это работает.Каков правильный способ ожидания значений ng-init?
Теперь я хочу сделать HTTP-запрос, как только загрузится моя страница, где URL-адрес будет зависеть от этого значения data.id. До сих пор, следующее, кажется, работает:
app.controller('MainCtrl', function ($scope, $http, $timeout) {
"use strict";
$scope.data = {};
$timeout(function() {
$http.get("/api/Something?id=" + $scope.data.id);
}, 0);
});
Однако, с помощью таймера с тайм-аутом нуля кажется неуклюжим. (И если я опускаю $ timeout код и просто вызываю $ http.get напрямую, то $ scope.data.id, конечно, не определено).
Есть ли лучший способ подождать до выполнения ng-init перед выдачей запроса $ http? И гарантируется ли код с тайм-аутом выше во всех случаях/во всех браузерах и т. Д.?
я хотел бы предложить вашу модель или контроллер ищет после того, как данные и вид просто отражает данные, не устанавливая его. это гораздо более «угловой» подход imho – Anton