$http-post dans Angular.js
Je viens de commencer l'apprentissage Angular.js. Comment puis-je ré-écrire le code suivant dans Angular.js?
var postData = "<RequestInfo> "
+ "<Event>GetPersons</Event> "
+ "</RequestInfo>";
var req = new XMLHttpRequest();
req.onreadystatechange = function () {
if (req.readyState == 4 || req.readyState == "complete") {
if (req.status == 200) {
console.log(req.responseText);
}
}
};
try {
req.open('POST', 'http://samedomain.com/GetPersons', false);
req.send(postData);
}
catch (e) {
console.log(e);
}
Voici ce que j'ai à ce jour -
function TestController($scope) {
$scope.persons = $http({
url: 'http://samedomain.com/GetPersons',
method: "POST",
data: postData,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function (data, status, headers, config) {
$scope.data = data; //how do pass this to $scope.persons?
}).error(function (data, status, headers, config) {
$scope.status = status;
});
}
html
<div ng-controller="TestController">
<li ng-repeat="person in persons">{{person.name}}</li>
</div>
Suis-je dans la bonne direction?
Vous devez vous connecter pour publier un commentaire.
Dans votre fonction actuelle si vous attribuez des
$scope.persons
à$http
qui est une promesse de l'objet comme$http
retourne un objet promise.Donc, au lieu d'attribuer
scope.persons
à $http, vous devez attribuer$scope.persons
à l'intérieur de la réussite de$http
comme mentionné ci-dessous:{'Content-Type': 'application/x-www-form-urlencoded'}
a fait le toursuccess
eterror
fonctions ont obsolète maintenant.Ici est une variante de la solution donnée par la Ajay beni. À l'aide de la méthode puis permet à la chaîne de multiples promesses, depuis le puis retourne une nouvelle promesse.
utiliser $http:
AngularJS: API: $http
Exemple de mise en œuvre:
Permet de briser ce bas: l'Url est un peu évident, si nous ignorions que...
de données: C'est le contenu du corps de votre facteur de demande de
config: C'est là que nous pouvons injecter des en-têtes, les gestionnaires d'événements, la mise en cache... voir AngularJS: API: $http: faites défiler vers le bas de config les en-Têtes sont les plus courantes facteur variante du http que les gens luttent pour se répliquer dans angularJS
Réponse: l' $http actions de retour angulaire promesse, je vous recommande d'utiliser .ensuite(successFunction, errorFunction) de traiter la promesse de voir AngularJS: Le Différé de l'API (Promesses)