AngularJS fake $ httpBackend.whenPOST () Uncaught TypeError: Eigenschaft '2' von undefined kann nicht gelesen werden

8

Ziemlich neu in AngularJS und hat ein Mock $ httpBackend erhalten, das wie in den Dokumenten beschrieben funktioniert (siehe hier: http: //docs.angularjs.org/api/ngMockE2E.$httpBackend). Ich kann den GET-Code zum Beispiel reproduzieren:

%Vor%

Die POST-Methode schlägt jedoch mit einem angle-mocks.js-Fehler fehl. Dies ist, was ich bei POST angeben muss:

%Vor%

So rufe ich den POST vom Controller auf:

%Vor%

Und das sehe ich in der Konsole als Antwort:

%Vor%

Mein Code sieht fast genauso aus wie die Dokumente. Die Funktion wird aufgerufen, wenn POST an, aber ich kann nicht herausfinden, warum es nicht ausgeführt wird.

Edit (Danke an Josh David Miller für seinen Kommentar zu einer Geige) Hier ist eine Geige, die den Fehler reproduziert: Ссылка Die Geige basiert auf dem Beispiel in der Angular Docs (http://docs.angularjs.org/api/ngMockE2E.$httpBackend) und der eckigen Geige für mockE2E $ httpBackend (http://jsfiddle.net/vojtajina/DQHdk/ )

Ist jemand schon einmal darauf gestoßen oder hat er Ideen, wie er das angehen könnte?

Ich habe ziemlich weit nach einer Lösung / relevanten Posts gesucht, kann aber keine finden, daher würden alle Zeiger sehr geschätzt.

Vielen Dank.

    
coderigo 10.01.2013, 12:47
quelle

1 Antwort

14

Ich habe dein jsFiddle aktualisiert, das jetzt funktioniert: Ссылка .

Erstens war die Version von AngularJS außerordentlich alt. Ich habe es von 0.10.6 auf 1.0.3 aktualisiert. Mit dieser Änderung kamen viele syntaktische Veränderungen, die Sie in der Geige finden können.

Aber das Problem, das Sie hatten, war, dass Sie keinen Wert in Ihrer $httpBackend.whenPOST -Methode zurückgegeben haben. Die Methode respond erwartet einen Wert, der den Status, den Antworttext und die Header angibt. Das ausführliche Beispiel, das ich in die Arbeitsgeige einbaute, ist:

%Vor%

Das zurückgegebene Array ist ein Antwortstatus von 200 , ein leerer Antworttext und ein leerer Headersatz (d. h. verwenden Sie die Standardwerte).

Ich habe auch whenGET hinzugefügt, damit Sie sehen können, wie sie zusammenarbeiten:

%Vor%     
Josh David Miller 11.01.2013, 23:09
quelle

Tags und Links