AngularJS docs say:AngularJS promettono
$ q promesse sono riconosciuti dal motore di template in angolare, il che significa che in modelli che è possibile trattare le promesse collegate a un ambito come se fossero i valori risultanti.
Quindi qualcuno potrebbe spiegare il motivo per cui questo fiddle non funziona? Non è possibile modificare il valore del campo di testo. Ma l'assegnazione di promesse che il servizio $ http restituisce a un campo di ambito funziona come un incantesimo.
Controller:
function MyController($scope, $q, $timeout) {
this.getItem = function() {
var deferred = $q.defer();
deferred.resolve({
title: 'Some title'
});
return deferred.promise;
};
$scope.item = this.getItem();
}
Html:
<input type="text" ng-model="item.title">
Potrebbe mostrarmi come hai assegnato una promessa restituita da $ http che ha funzionato nel modo desiderato? – Dogbert
@Dogbert, Ecco lo pseudocodice per illustrare di cosa stavo parlando: '$ scope.item = $ http ({metodo: 'post', url: '/ find/my/item /'}) .then (funzione (risposta) { return response.item; }); ' Un altro esempio che utilizza l'approccio $ risorse può essere trovato in questo [tutorial] (http://docs.angularjs.org/tutorial/step_11). A partire dalla riga: 'Nota come in PhoneListCtrl abbiamo sostituito ... con $ scope.phones = Phone.query();' –
Oops, appena creato [esempio di prova] (http://plnkr.co/edit/ VP1Td3WtdM0E7n5HJH3W? P = anteprima), e sembra non funzionare con alcuna promessa –