Я пишу приложение с EmberJS v1.0.pre. У меня есть ArrayController
, который содержит список всех лиц. Есть куча вложенных представлений, показывающих человека, их питомцев и заметки для каждого питомца.
|----------------------------------------|
| John | <- Person
|----------------------------------------|
| Quincy (Dog) | <- Pet
| - Super ornery | <- Note
| - Likes XYZ Dog food |
| - Will eat your socks |
| |
| Tom (Cat) |
| - Always (not) catching mice |
| |
|----------------------------------------|
| Roger |
|----------------------------------------|
| V (Dog) |
| - Likes XYZ Dog food |
| - Sneezes, but it ok |
| |
|----------------------------------------|
| ... |
С чистой точки зрения MVC кажется, что для каждого ребенка должен быть контроллер, но я не могу понять, как это достичь в Ember. Существует верхний контроллер массива, а затем все отдельные виды. Если я хочу удалить заметку или отредактировать ее, мне кажется, что мне нужно передать контекст представления до контроллера.
// in the view
click: function () {
this.get('controller').updateNote(this.get('content'))
}
Для меня это очень плохо, представление не должно быть авторитетным источником данных. Мое предположение заключается в том, что ArrayController создаст экземпляр itemControlerClass
вместе с itemViewClass
.
ОБНОВЛЕНИЕ: Я создал fiddle, чтобы лучше проиллюстрировать мою проблему. Функциональность преднамеренно неполна, цель состоит в том, чтобы закончить функциональность, увеличив содержание, когда щелкнул элемент в списке.
ОБНОВЛЕНИЕ: Извините, я удалил скрипку при аварии! Я делаю некоторую работу над окончательным решением, поэтому я попытаюсь создать новую скрипку с решением.