AngularJS fake $httpBackend.whenPOST() Uncaught TypeError: Cannot read property '2' undefined

Ziemlich neu in AngularJS und bekam ein mock $httpBackend zu arbeiten, wie beschrieben in der Doku (siehe hier:http://docs.angularjs.org/api/ngMockE2E.$httpBackend). Ich reproduzieren können, den GET-code z.B.:

$httpBackend.whenGET('/phones').respond(phones);

Der POST Methode, jedoch schlägt mit einer angular-mocks.js Fehler. Dies ist, was ich angeben geschehen auf POST:

      $httpBackend.whenPOST('/phones').respond(function(method,url,data){
        console.log(data);
        phones.push(angular.fromJson(data));
  });

Dies ist, wie rufe ich die POST aus dem controller:

  var newPhone = {name:'New Phone'};
  $http.post('/forecasts/types.json', newPhone);

Und das ist, was ich sehe in der Konsole in der Antwort:

{"name":"New Phone"}  app.js:167

Uncaught TypeError: Cannot read property '2' of undefined angular-mocks.js:876
(anonymous function) angular-mocks.js:876
completeOutstandingRequest angular.js:2930
(anonymous function) angular.js:3209

Mein code sieht so ziemlich das gleiche wie die docs. Die Funktion wird aufgerufen, wenn Gebucht, aber ich kann nicht herausfinden, warum es nicht laufen.

Bearbeiten (Dank an Josh David Müller für seinen Kommentar re ein Turnschuh) Hier ist ein Turnschuh, das den Fehler reproduziert: http://jsfiddle.net/elcabo/btbds/3/
Die Geige ist anhand des Beispiels in den Winkel-docs (http://docs.angularjs.org/api/ngMockE2E.$httpBackend) und die Winkel-Geige für mockE2E $httpBackend (http://jsfiddle.net/vojtajina/DQHdk/)

Hat jemand erlebt oder eine Idee, wie wir angreifen?

Ich gesucht habe ziemlich große, die für eine Lösung relevanten Beiträge, kann aber keine finden, so dass alle Zeiger wäre sehr dankbar.

Vielen Dank.

  • Können Sie nach dem code, dass der Fehler auf Plunker oder jsFiddle so können wir basteln?
  • Dank Josh. Sollte ich gepostet haben, eine Fiedel, wenn ich die Frage gepostet. Mein schlechtes. Arbeiten Sie zu wenig schlafen. Ich habe reproduziert den Fehler in einem fiddle und bearbeitet meine Frage gehören.
  • Ich werde werfen Sie einen Blick auf die Geige, aber das erste, was mir aufgefallen ist, dass Sie verwenden eine version von Angular, die ist wirklich veraltet (0.10.6 vs 1.0.x). Ist das absichtlich, oder kann ich es aktualisieren auf die neueste version?
  • Gold! Dank Josh. Die version von angular in die Fiedel wurde übernommen von den docs' Geige, die ich abgespalten. Mein Projekt verwendet ein v1.0.3, die ich installiert mit yeoman. Es funktioniert nun mit Ihren änderungen. So einfach. Gah. Ich wirklich schätzen Ihre Hilfe.
InformationsquelleAutor coderigo | 2013-01-10
Schreibe einen Kommentar