Ho una direttiva "ng-init" nel mio codice HTML che inizializza il valore di "data.id" nel mio modello di dati Angular.js. Diciamo per ora che non posso cambiare il modo in cui funziona.Qual è il modo giusto per attendere che i valori di ng-init siano impostati?
Ora, voglio fare una richiesta HTTP non appena i miei caricamento della pagina, in cui l'URL dipenderà questo valore data.id. Finora, il seguente sembra funzionare:
app.controller('MainCtrl', function ($scope, $http, $timeout) {
"use strict";
$scope.data = {};
$timeout(function() {
$http.get("/api/Something?id=" + $scope.data.id);
}, 0);
});
Tuttavia, utilizzando un timer con un timeout pari a zero sembra goffo. (E se tralascio il codice $ timeout e semplicemente chiamare $ http.get direttamente, quindi $ scope.data.id è, naturalmente, non definito).
Esiste un modo migliore per aspettare fino a ng-init ha eseguito prima di emettere la richiesta $ http? E il codice basato sul timeout sopra garantito funziona in tutti i casi/su tutti i browser, ecc.?
vorrei suggerire il modello o del controller alla ricerca dopo i dati e la vista solo riflette i dati, non impostazione. questo è un approccio molto più "angolare" imho – Anton