Я работаю над приложением EmberJS около недели и написал свой собственный адаптер localStorage для EmberJS / Data, чтобы обеспечить сохранность данных.Приложение представляет собой небольшое приложение для создания заметок.В идеале я хотел бы иметь модель Notebook, с которой связано много моделей Note.
Однако я не нашел способа сделать это, что привело бы к изменчивому массиву.Хотя вы можете «реализовать» отношение 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)
});
... ModelArray, созданный методом hasMany, является неизменным в EmberJS.Похоже, что это в настоящее время работает - есть ветвь "ассоциации" EmberJS / Data здесь - но изменение 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 есть изменчивость массива, в ней по-прежнему отсутствуют какие-либо наблюдения - адаптер не уведомляется о внесенных изменениях и не сохраняется.
Мне интересно: какова лучшая альтернатива ассоциации hasMany, пока эта способность не будет добавлена в EmberJS / Data?Я изучал различные шаблоны, такие как наличие массива идентификаторов заметок в модели Notebook с неким интерфейсом выборки / извлечения, но я не получил абсолютно ничего.Я потратил довольно много времени сегодня, пытаясь найти лучший способ сделать это, и все, что у меня есть, это большое разочарование.