AngularJS promesse

AngularJS docs dire:

$q promesses sont reconnus par le moteur de template dans angulaire, ce qui signifie que dans les modèles, vous pouvez traiter les promesses attachées à un champ comme s'ils étaient les valeurs résultantes.

Si quelqu'un pourrait-il expliquer la raison de ce violon pas de travail? Il n'est pas possible de changer la valeur du champ. Mais l'attribution des promesses que $service http renvoie à un champ d'application champ fonctionne comme un charme.

Contrôleur:

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">
Pourriez-vous me montrer comment vous avez attribué une promesse retourné par $http, qui a travaillé comme tu le voulais?
Voici pseudocode pour illustrer ce que je disais: $scope.item = $http({method: 'post', url: '/find/my/item/'}) .then(function (response) { return response.item; }); un Autre exemple qui utilise $ressource, peut être trouvé dans ce tutoriel. À partir de la ligne: Notice how in PhoneListCtrl we replaced ... with $scope.phones = Phone.query();
Oups, vous venez de créer exemple de test, et il semble ne pas travailler avec des promesse
Hey les gars, pour le faire fonctionner, j'ai dû utiliser .success(function(){}).then(function(r){if (r.data["my-result"])return r.data["my-result"];});

OriginalL'auteur Raman Chodźka | 2012-12-29