Ответ 1
Настройка
tagName: 'tbody'
должно позволить вам группировать связанные тэг-теги вместе, не нарушая таблицу, и все равно разрешать this.el работать.
Итак, у меня есть сетка данных, и каждый элемент в сетке имеет связанную модель и представление. Мне нужно отобразить каждый элемент в виде строк two для достижения нужного пользовательского интерфейса. (Нет, это был не мой дизайн...)
Первая попытка: в режиме просмотра render()
просто выполните две строки и добавьте их в this.el
. Затем я добавляю каждое представление в таблицу и обнаруживаю, что каждая пара строк была обернута в <div>
. Недопустимый HTML и макет - все неправильно.
Хорошо, вторая попытка: снова отобразить две строки в представлении, но вместо добавления всего представления в таблицу я просто добавляю дочерние строки с помощью tableItemView.$("tr")
. Ура, это работает! Но держись... события в ряду теперь прекратили стрельбу. Я обнаружил, что это потому, что backbone использует jQuery.delegate
, поэтому все события были делегированы исходному el
, который больше не является частью таблицы.
Мне нравится чистая архитектура, но изо всех сил пытаюсь найти хорошее решение для этого. Любые идеи?
Настройка
tagName: 'tbody'
должно позволить вам группировать связанные тэг-теги вместе, не нарушая таблицу, и все равно разрешать this.el работать.
В вашем объекте view, каково ваше свойство tagName, установленное на?
Из документов:
this.el is created from the view tagName, className, and id properties,
if specified. If not, el is an empty div
Вероятно, вы хотите установить
tagName: 'tr'
И затем в render():
$(this.el).html("<td>content for row one</td>").append("<tr><td>content for row two</td></tr>");
Это может не работать точно, но вы получаете идею.
Опция состоит в том, чтобы просто создать 2 маленьких представления, каждая из которых ссылается на одну и ту же модель, по одной для каждой строки.
В зависимости от того, насколько интегрированы 2 строки (возможно, они перемещаются/сортируются как единое целое), вы можете иметь представление типа "контроллер", которое создает подзапрос и организует их поведение.