Der REST-Adapter Ember.js erwartet, dass der JSON wie folgt zurückgegeben wird:
%Vor%Aber meine API gibt die Daten ohne ein Wurzelelement zurück:
%Vor%Ist es möglich, den REST-Adapter so anzupassen, dass er meine JSON-Daten akzeptiert? Im Moment wird angezeigt: " Assertion failed: Ihr Server hat einen Hash mit dem Schlüssel 0 zurückgegeben, aber Sie haben keine Zuordnung dafür "
UPDATE: Basierend auf Sherwin Yus Antwort unten, das ist, was ich dachte, scheint so weit zu arbeiten: Ссылка
Ja, Sie können Ihren eigenen benutzerdefinierten REST-Adapter schreiben. Sehen Sie sich den Quellcode im JSONSerializer an , RESTSerializer (erweitert den JSONSerializer) und der REST-Adapter .
Im Grunde müssen Sie die Methoden extract*
vom JSONSerializer überschreiben.
Momentan sieht es ungefähr so aus:
%Vor% Beachten Sie, dass es json[root]
überprüft - Sie müssten Ihre benutzerdefinierte Methode basierend auf Ihrer erwarteten API-Antwort schreiben.
Ein anderer Ansatz wäre, den JSON von der API "vorzuverarbeiten", um ein Wurzelelement zu verwenden. Sie können dies tun, indem Sie herausfinden, welche Methoden extract*
aufrufen (die JSON übergeben), und bevor Sie dies tun, ändern Sie den JSON so, dass er das Wurzelelement enthält.
Ich hoffe, das hilft, bitte lassen Sie es mich wissen, wenn es unklar ist.
Ich habe das gelöst, indem ich DS.RESTSerializer erweitert habe. Die extractArray-Methode muss überlastet werden, wenn die Serverantwort vom Typ Array ist.
%Vor%Tags und Links javascript api json ember.js ember-data