私はEmberJSアプリケーションの開発に1週間ほどかかり、EmberJS/Data用の独自のlocalStorageアダプタを作成してデータの永続性を確保しています。このアプリは小さなメモを取るアプリケーションです。理想的には、私はそれに関連付けられている多くのノートモデルを持っているノートブックモデルを持っていると思います。EmberJS/DataとのアソシエーションTo
しかし、これを実行する方法が見つからず、結果として可変配列になりました。あなたは...
Noted.Note = DS.Model.extend({
title: DS.attr('string'),
note_text: DS.attr('string'),
});
Noted.Notebook = DS.Model.extend({
title: DS.attr("string"),
notes: DS.hasMany(Noted.Note)
});
をhasManyの関係を「実装」することができますが... hasManyの方法で作成されたModelArrayはEmberJSで不変です。 EmberJS /データhereの「団体」分岐がある - - 現在で働いているように見えますが、ModelArrayを変更すると、新しいノートを作成すなわちし、このアプリケーションにとって極めて重要である:非常ものの
var notebook = Noted.store.createResource(Noted.Notebook, {
title: "Foo Notebook"
});
notebook.get("notes").pushObject(Noted.store.createResource(Noted.Note, {
title: "Bar Note",
note_text: "Blah blah blah."
}));
notebook.get("notes").objectAt(0).get("title") //returns undefined
EmberJS/Dataの最新のコミットにはアレイの変更が含まれていますが、それでもまだ観察はありません。変更が行われたときにアダプターに通知されず、保存されません。
私はこの能力がEmberJS/Dataに追加されるまで、hasManyアソシエーションの最良の選択肢は何ですか?私は、NotebookモデルにメモID配列を持っていて、それと一緒になるようなフェッチ/リトリーブインターフェイスを持っているなど、さまざまなパターンを調べてきましたが、私は絶対にどこにも行きませんでした。私は今日これを行うための最善の方法を見つけようと努力してきました。私が持っているのはたくさんの不満です。