Mam w moim kodzie HTML dyrektywę "ng-init", która inicjuje wartość "data.id" w moim modelu danych Angular.js. Powiedzmy na razie, że nie mogę zmienić sposobu działania.Jaki jest właściwy sposób oczekiwania na wartości ng-init?
Teraz chcę utworzyć żądanie HTTP zaraz po załadowaniu strony, gdzie adres URL będzie zależał od tej wartości data.id. Do tej pory wydaje się, że działa:
app.controller('MainCtrl', function ($scope, $http, $timeout) {
"use strict";
$scope.data = {};
$timeout(function() {
$http.get("/api/Something?id=" + $scope.data.id);
}, 0);
});
Jednak korzystanie z licznika czasu z limitem czasu zero wydaje się nieporęczne. (A jeśli pominę kod $ timeout i po prostu zadzwonię bezpośrednio do $ http.get, to $ scope.data.id jest, oczywiście, niezdefiniowany).
Czy istnieje lepszy sposób oczekiwania na wykonanie polecenia ng-init przed wysłaniem żądania $ http? I czy powyższy kod oparty na limicie czasu gwarantuje działanie we wszystkich przypadkach/we wszystkich przeglądarkach itp.?
proponuję model lub kontroler patrząc po danych i widok po prostu odzwierciedla dane, nie ustawiając go. to jest o wiele bardziej "kątowe" podejście imho – Anton