AngularJS - Retour dans la réussite $http.post
- Je utiliser AngularJs et j'ai besoin de retour de données après un $http.post de connexion. C'est le code:
app.controller('PrincipalController',['$http', '$scope', function($http,$scope){
$scope.myData = 0;
$http.post("server/checklogin.php",
{id: "id",email: "email",password: "password"}
)
.success(function(data){
console.log($scope.myData) //0
$scope.myData = data;
console.log($scope.myData); //1
}
VIEUX: Comment puis-je transmettre les données dans myData? - Merci pour vos réponses et désolé si je n'ai pas bien expliqué.
Mais maintenant, en html, {{myData}}
que puis-je écrire?
Je ne sais pas si c'est fondamental, mais je vais avoir besoin d'utiliser "myData" avec un "ng-si"..
EDIT: Merci! Je pense que j'ai résolu! 😀
Désolé je ne comprends pas la question, vous venez de faire "myData =" données à l'intérieur de la "réussite" de la fonction, quel est le problème?
Tout ce que vous souhaitez faire avec les données avec succès. Vous ne pouvez pas le prendre à l'extérieur en raison de la nature asynchrone.
La seule angularish façon de faire ce que vous voulez, c'est à dire de manière asynchrone à l'aide de données extraites en mode synchrone est d'utiliser le $service de ressources qui permettra de remplir votre myData variable (à condition qu'il est dans le $scope) lorsque les données sont sur le serveur. $http ne fournit pas cette fonctionnalité immédiatement et le seul endroit où vous pouvez utiliser les données renvoyées sont dans le rappel.
soit utiliser
ok.. Mais ça ne fonctionne pas.. Que dois-je faire?
Tout ce que vous souhaitez faire avec les données avec succès. Vous ne pouvez pas le prendre à l'extérieur en raison de la nature asynchrone.
La seule angularish façon de faire ce que vous voulez, c'est à dire de manière asynchrone à l'aide de données extraites en mode synchrone est d'utiliser le $service de ressources qui permettra de remplir votre myData variable (à condition qu'il est dans le $scope) lorsque les données sont sur le serveur. $http ne fournit pas cette fonctionnalité immédiatement et le seul endroit où vous pouvez utiliser les données renvoyées sont dans le rappel.
soit utiliser
this.myData or $scope.myData
pas les deuxok.. Mais ça ne fonctionne pas.. Que dois-je faire?
OriginalL'auteur simone_s1994 | 2015-02-12
Vous devez vous connecter pour publier un commentaire.
Typiquement dans votre service, vous devrez retourner la promesse
puis de contrôleur de
OriginalL'auteur Uluk Biy
vous devriez faire quelque chose comme ceci:
Vous ne pouvez pas mettre l'affectation à droite après le post d'appel, parce que l'appel est asynchrone, il est impossible de prédire le moment exact où elle sera de retour.
J'ai utilisé le
$scope
, parce que, normalement, vous pouvez l'utiliser par l'intermédiaire d'un service sur un contrôleur lorsqu'un champ est disponible. Sinon, vous pouvez utiliser une fonction dans une fonction de rappelOriginalL'auteur