次の Emberjs データ モデルがあります。
App.File = DS.Model.extend({
like: DS.attr('boolean'),
comments: DS.hasMany('App.Comment')
});
App.Comment = DS.Model.extend({
file: DS.belongsTo('App.File'),
comment: DS.attr('string')
});
そしてそれをプリロードします:
App.store.load(App.File, {id: 1, like: false});
今、私がこのようなコメントを受け取ったら、私は考えました:
var f = App.store.find(App.File, 1);
var c = f.get("comments");
var c は空の EmberArray であり、リクエストがサーバーに送信されます。でもリクエスト来ないの?なぜ、どのようにそれをしなければならないのですか?コメントをプリロードしたくありません。
さらに、コメントを追加すると同時にファイルを変更すると、次のようになります。
f.get("comments").createRecord({comment: "test"});
f.set("like", true);
App.store.commit();
2 つの要求がサーバーに送信されます。しかし、次の JSON (ファイル用) を返すと:
{ "id": 1, like: true }
最初に表示されたコメントが再び表示されなくなります。なんで?そして、私は何をしなければなりませんか?
ご協力いただきありがとうございます!