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.

Beim Aufruf gelten, sind Sie immer eine Fehlermeldung, dass das anwenden/digest ist bereits in progress?
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

Schreibe einen Kommentar