AngularJS - Rückkehr bei Erfolg $http.post
Ich benutze AngularJs und muss ich zurückgeben von Daten nach einem $http.post-Verbindung. Dies ist der 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
}
ALT: Wie kann ich übergeben Sie die Daten in myData? - Vielen Dank für Eure Antworten und sorry wenn ich nicht gut erklärt.
Aber jetzt im html - {{myData}}
was kann ich schreiben?
Ich weiß nicht, ob es fundamental, aber ich werde "myData" mit einer "ng-if"..
EDIT: Danke! Ich denke, dass hab ich gelöst! 😀
Sorry, ich kann nicht verstehen, die Frage ist, Sie haben einfach 'myData = data' in den 'success' - Funktion, was ist das problem?
Was auch immer Sie tun möchten, mit Daten, mit Erfolg. Sie können nicht nehmen Sie es draußen, weil der async-Natur.
Den nur angularish Weg, das zu tun, was Sie wollen, D. H. asynchron abgerufenen Daten in einer synchronen Art und Weise zu verwenden, die $resource service die füllen in Ihrer myData variable (vorausgesetzt, es ist in die $scope), wenn die Daten wieder vom server. $http bietet diese Funktionalität nicht direkt an, und der einzige Ort, wo können Sie die zurückgegebenen Daten ist in den Rückruf.
entweder
Aber ok.. es funktioniert nicht.. Was kann ich tun?
Was auch immer Sie tun möchten, mit Daten, mit Erfolg. Sie können nicht nehmen Sie es draußen, weil der async-Natur.
Den nur angularish Weg, das zu tun, was Sie wollen, D. H. asynchron abgerufenen Daten in einer synchronen Art und Weise zu verwenden, die $resource service die füllen in Ihrer myData variable (vorausgesetzt, es ist in die $scope), wenn die Daten wieder vom server. $http bietet diese Funktionalität nicht direkt an, und der einzige Ort, wo können Sie die zurückgegebenen Daten ist in den Rückruf.
entweder
this.myData or $scope.myData
nicht beideAber ok.. es funktioniert nicht.. Was kann ich tun?
InformationsquelleAutor simone_s1994 | 2015-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel in Ihrem service-senden Sie das Versprechen
dann im controller
InformationsquelleAutor Uluk Biy
sollten Sie etwas wie das hier tun:
Können Sie nicht setzen Sie die Zuweisung direkt nach dem post aufrufen, da der Aufruf asynchron ist, Sie können nicht Vorhersagen, den genauen moment, wenn Sie werden wieder kommen.
Benutzte ich die
$scope
, denn normalerweise könnten Sie es durch einen Dienst auf einem controller, wo ein Rahmen verfügbar ist. Ansonsten können Sie eine Funktion in einer callback -InformationsquelleAutor