angularjs docs say:angularjs obiecują
$ q obietnice są rozpoznawane przez silnik szablonów w kanciaste, co oznacza, że w szablonach można traktować obietnice załączone do zakresu, jak gdyby były otrzymane wartości.
Czy ktoś mógłby wyjaśnić, dlaczego ten fiddle nie działa? Nie można zmienić wartości pola tekstowego. Ale przypisywanie obietnic, że usługa $ http wraca do pola zasięgu działa jak urok.
Kontroler:
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">
Czy możesz pokazać mi, w jaki sposób przypisałeś obietnicę zwróconą przez $ http, który działał tak, jak chciałeś? – Dogbert
@Dogbert, Oto pseudokod dla zilustrowania tego, o czym mówiłem: '$ scope.item = $ http ({method: 'post', url: '/ find/my/item /'}) .then (function (response) { return response.item; }); ' Inny przykład, który używa podejścia $ resource można znaleźć w tym [tutorialu] (http://docs.angularjs.org/tutorial/step_11). Począwszy od linii: 'Zauważ, jak w PhoneListCtrl wymieniliśmy ... z $ scope.phones = Phone.query();' –
Ups, właśnie utworzono [przykład testowy] (http://plnkr.co/edit/ VP1Td3WtdM0E7n5HJH3W? P = preview) i wygląda na to, że nie działa z żadną obietnicą. –