1

In meiner App verwende ich Restangular, und ich habe solche Methode (die ich von der Plain $ http-Anfrage konvertiert). Und ich weiß nicht, wie man mit Versprechen richtig restangular verwendet. Wie ist es möglich?Verwenden von Restangular mit Versprechen (zurückgestellt)

Hier ist mein Code:

var test = function(){ 
var data = '{"Office":"' + office + '"}'; 
var deferred = $q.defer(); 
var person = Restangular.one('persons', id) 
$scope.person.patch(data).then(function (response) { 
    deferred.resolve(response); 
},function (err, status) { 
    deferred.reject(status); 
}); 
return deferred.promise; 
} 


var runIt = function(){ 
    test.then(...)... 
} 

Antwort

1

Sie einfach Versprechen von patch Methode von Restangular.one statt der Schaffung einer neuen benutzerdefinierten Versprechen zurück nutzen könnten.

-Code

var test = function() { 
    var data = '{"Office":"' + office + '"}'; 
    var person = Restangular.one('persons', id); 
    //returned promise 
    return person.patch(data).then(function(response) { 
     return response.data; 
    }, function(err, status) { 
     return response.status; 
    }); 
} 

test().then(...) 
+0

aber so bekomme ich Angularjs: 11706 Typeerror: nicht Eigenschaft lesen kann 'dann' undefinierten meinen aktualisierten Code – brabertaser19

+0

in test.then überprüfen (...) .. – brabertaser19

+0

@ brabertaser1992 schau dir das Update an, im Grunde solltest du '$ scope.person' in' person' umbenennen, da es in $ scope keine Person gibt, es ist Javascript Variable. siehe Ich habe meine Antwort aktualisiert, mit wie es in Ihrem Code aussehen wird .. –