Ember-Data "Findmany"が正しくサイドローする必要があるJSON構造は何ですか?
-
12-12-2019 - |
質問
Ember-Dataとの最初のハメーリランダイをやっていて、常に楽しいを襲っています
"アカウントのエラー:アサーションに失敗しました:あなたのサーバーはハッシュを返しました キー0ですが、マッピングがありません "
これは通常、私が「Ember」フレンドリーフォーマットを呼んでいるものにJSON構造を持っていないことを意味します。
Django REST Frameworkを使用してDjangoのための私自身の休憩アダプタを構築しているので、これがエラーなしでサイドロードのようになるべきものが興味があります。
現在JSONが戻ってきているのは、以下のように見えます(明らかにそれはセッションに戻ることはできませんが、Emberはすでにこれを結ぶ方法をすでに知っていますか?)
[{"ID":2、 "名前": "foobar"}]
モデルはこののように見えます
.CodeCamp.Session = DS.Model.extend({ id: DS.attr('number'), name: DS.attr('string'), room: DS.attr('string'), desc: DS.attr('string') }); CodeCamp.Speaker = DS.Model.extend({ id: DS.attr('number'), name: DS.attr('string'), session: DS.belongsTo('CodeCamp.Session') }); CodeCamp.Session.reopen({ speakers: DS.hasMany('CodeCamp.Speaker') });
事前にありがとう
解決
JSON構造はこののように見えるべきです
{ speakers: [{ id: 2, name: "FooBar" }] }
.
このコミットを見つけたと、名前付きDICT の中にJSONを包む必要があることを示すコミットが見つかりました
https://github.com/kurki/data/commit/F59AD5BC9718634B6F3D59356DEAE0BF97A1BBD5
だから私のDjango Adapter にある私のカスタムJSONメソッドです。
findMany: function(store, type, ids) {
var root = this.rootForType(type), plural = this.pluralize(root), json = {};
this.django_ajax(this.buildURL(root, ids), "GET", {
success: function(pre_json) {
json[plural] = pre_json;
this.sideload(store, type, json, plural);
store.loadMany(type, json[plural]);
}
});
}
. 所属していません StackOverflow