Рендеринг представления коллекции в конструкторе, запускаемом CompositeView?

У меня есть составное представление, в котором есть задача и комментарии. Я поместил его в область содержимого для отображения. При рендеринге одной модели все работает нормально. Однако при сборе он ведет себя очень странно. console.log показывает, что функция инициализации была запущена дважды. Первый раз, когда определяют представление

taskView = new MyProject.Views.Task
  model : task
  collection : comments

Затем я делаю MyProject.contentRegion.show(taskView), чтобы отобразить вид модели. После этого я просто звоню comments.fetch(), чтобы получить все комментарии. Затем возникает проблема, она повторно инициализирует мой taskView, и шаблон продолжает жаловаться, что xxx не определен.

Есть предположения? Я знаю, что это странно, потому что другой CompositeView в моем проекте отлично работает.


person yujingz    schedule 04.01.2013    source источник
comment
разместите больше кода, пожалуйста. здесь недостаточно, чтобы знать, что происходит. Например, что такое MyProject.Views.Task?   -  person Derick Bailey    schedule 05.01.2013
comment
У меня почти точно такая же проблема. начну новый вопрос   -  person Thomas Hudspith-Tatham    schedule 22.02.2013
comment
@ThomasHudspith-Tatham В итоге я использовал представление элементов и зацикливал добавление коллекции вручную.   -  person yujingz    schedule 23.02.2013


Ответы (1)


NathanInMac, я провел небольшое тестирование вашего предложения по использованию itemView и нашел кое-что интересное.

Была ли ваша проблема связана с вложенными композитными представлениями? Как и у меня, но я не уверен, что это на что-то влияет.

То, что решило проблему, заключалось в том, что изначально пытался использовать collectionView, который не мог найти itemView, поэтому я переместил определение itemView для collectionView/compositeView до определения collectionView (или расширенного).

Кажется, это рабочее исправление и просто вводящая в заблуждение ошибка с двойной инициализацией композитного представления вместо отображения какого-либо исключения или ошибки.

person Thomas Hudspith-Tatham    schedule 25.02.2013
comment
Спасибо, Томас. Мое решение находится в представлении нового элемента, добавьте событие изменения для моей модели и в обратном вызове сбросьте модель коллекции. Затем будет запущено событие сброса коллекции. После этого делайте все, что хотите, с коллекцией в этом обратном вызове. - person yujingz; 25.02.2013