Вопрос

Я работаю над приложением 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 с каким-то интерфейсом выборки/извлечения, но ничего не добился.Я потратил довольно большую часть сегодняшнего дня, пытаясь найти лучший способ сделать это, и все, что у меня осталось, — это большое разочарование.

Это было полезно?

Решение

Ember-данные в конечном итоге попадут туда.До тех пор я просто изменяю массив и вручную вызываю все соответствующие методы хранилища, чтобы отразить мутацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top