2

我已經在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數組,帶有某種訪存/檢索接口,但是我完全沒有辦法。今天我花了相當多的時間試圖找出最好的方法來做到這一點,而我所擁有的就是很多挫折感。

回答

1

Ember-data最終會到達那裏。在那之前,我現在只是改變數組,並手動調用所有相應的存儲方法來反映變化。