Обработка данных списка + детали + представления редактирования в приложении EmberJS

Я создаю приложение EmberJS, которое должно состоять из трех компонентов. Список элементов, подробный вид каждого элемента и режим редактирования каждого элемента. Я не нашел хорошего объяснения или примера того, как управлять данными в этом конкретном случае.

Вы можете найти упрощенный и вычищенный пример того, что у меня есть прямо сейчас, в этом gist: https://gist.github.com/2390740

Чего я хотел бы избежать, так это наличия двух копий данных, но единственный способ, которым я смог получить данные в подробном представлении, — это создать их копию, что далеко не идеально.

Есть ли способ сослаться на элемент массива в ListController из DetailController? Таким образом, когда элемент обновляется в подробном представлении, представление списка автоматически обновляется с учетом изменений.

Я хотел бы добиться того, чтобы ListController загружал список с базовой информацией о каждом элементе, а затем DetailController загружал всю доступную информацию для выбранного элемента. Если бы хранилище данных на стороне клиента могло быть одинаковым как для списка, так и для подробного представления, DetailController не пришлось бы снова загружать подробную информацию, если пользователь вернется к элементу, который уже был загружен. Еще одно преимущество заключается в том, что представление списка уже будет обновлено, если пользователь что-либо изменит, а затем вернется к списку.

Примечание. Я знаю, что в этом примере отсутствует представление редактирования, я просто пытаюсь сначала заставить работать привязку данных между подробным представлением и списком.


person Rickard Andersson    schedule 15.04.2012    source источник
comment
Я нашел немного лучший способ сделать это, изменив currentItem на вычисляемое свойство и скопировав индекс только для текущего элемента. Это больше того, чего я пытался достичь, но я оставлю вопрос о том, что есть еще лучший способ решить эту проблему.   -  person Rickard Andersson    schedule 16.04.2012


Ответы (1)


Я делаю именно это в моем приложении Ember для чтения каналов. Способ сделать это — иметь detailController со свойством содержимого. Привяжите все детали вашего представления к detailController. Выбор элемента в контроллере списка должен установить свойство содержимого контроллера деталей для этого элемента. Сделанный!

person MattK    schedule 16.04.2012