AngularJs $scope.$gelten nicht funktioniert wie erwartet
Ich bin mit diesem controll: http://blueimp.github.io/jQuery-File-Upload/angularjs.html zu tun, hochladen der Datei in eckigen, sobald die Datei wird hochgeladen, auf meinem server habe ich wieder eine url und möchte, um es anzuzeigen, um den Kunden über den Erfolg-Rückruf. Das plugin verwendet wird, ist nur eine normale jquery-file-upload, aber es ist ein Winkel-Richtlinie-wrapper zur Verfügung gestellt, die ich verwende.
Hier ist, wie ich definieren Sie die callback:
$scope.options = {
url: '/api/Client/',
type: 'PUT',
done: function (event, data) {
var scope = angular.element(this).scope();
scope.test = "doesn't work";
scope.$apply(function () {
scope.test = "this doesn't work either";
});
}
};
Des Datei-uploads in Ordnung, und die done-Funktion aufgerufen wird, jedoch bin ich nicht in der Lage um die Ansicht zu aktualisieren. Ursprünglich habe ich versucht, einfach indem Umfang, dann merkte ich, ich würde verlangen, dass die $apply () - Funktion, aber das ist nicht arbeiten entweder.
Habe ich auch schon versucht
$scope.options = {
url: '/api/Client/',
type: 'PUT',
done: function (event, data) {
$scope.test = "doesn't work";
$scope.$apply(function () {
$scope.test = "this doesn't work either";
});
}
};
sind und dass auch das funktioniert nicht. Ich bin nicht sicher, warum es nicht aktualisiert wird, meine Ansicht, und als die fertig nennen, ist nur eine ajax-Erfolg event ich sehe nicht, wie dieses spezielle plugin verursacht Probleme mit $scope.$gelten. Ich bin mit AngularJs 1.1.5, aber ich habe auch 1.0.7 versucht und erhalte das gleiche Problem.
Nope, keine Fehler. Es funktioniert einfach nicht alles tun. Wenn ich rufe ihn mehrere Male und schaue auf den Wert von $scope.test ich sehe den Wert, der festgelegt wurde, zuvor. Den Blick einfach nicht aktualisieren mit diesem Wert
Die zweite version sieht wirklich wie es sollte funktionieren für mich, wenn die done-Funktion wird immer aufgerufen.
Ich es geschafft, herauszufinden, das problem. Wenn Sie mit Ihrem Beispiel hatte ich ein Duplikat von ng-controller(Ihr Beispiel war die verschachtelt in meinen anderen controller) und obwohl beide wurden mit dem gleichen controller wie es scheint, wäre es nur zu aktualisieren, etwas von dem, was in verschachtelte controller-Bereich. Beim entfernen der doppelten ng-controller-Attribut hat alles Prima funktioniert. Doh. Trotzdem danke!
InformationsquelleAutor David Esteves | 2013-07-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kopiert aus meinem Kommentar deutlicher machen, was das problem war:
Ich es geschafft, herauszufinden, das problem. Wenn Sie mit Ihrem Beispiel hatte ich ein Duplikat von ng-controller(Ihr Beispiel war die verschachtelt in meinen anderen controller) und obwohl beide wurden mit dem gleichen controller wie es scheint, wäre es nur zu aktualisieren, etwas von dem, was in verschachtelte controller-Bereich. Beim entfernen der doppelten ng-controller-Attribut hat alles Prima funktioniert.
Sie sind die besten!!! Ich war mit dem gleichen problem und entfernen von controller-Vervielfältigung sortiert alles.
InformationsquelleAutor David Esteves
Ich dachte, ich würde in Glockenspiel, denn ich habe einen ganzen Tag verbracht, mit diesem Problem fertig.
Stellen Sie sicher, dass in Ihrem HTML-Code, die Sie anwenden, die ng-controller an ein div-wrapper, nicht von einem ul-element.
InformationsquelleAutor zMan