我已經在EmberJS應用程序上工作了大約一週,併爲EmberJS/Data編寫了自己的localStorage適配器以允許數據持久性。該應用程序是一個小筆記應用程序。理想情況下,我想要有一個Notebook模型,它有很多與它關聯的註釋模型。替代與EmberJS/Data的關聯
但是,我還沒有找到一種方法來做到這一點,導致一個可變數組。雖然你可以在「實現」一的hasMany關係......
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方法創建的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模型中有一個note ID數組,帶有某種訪存/檢索接口,但是我完全沒有辦法。今天我花了相當多的時間試圖找出最好的方法來做到這一點,而我所擁有的就是很多挫折感。