2013-05-15 2 views
1

Я создал сложный шаблон с помощью JsRender с кучей вложенных таблиц. Теперь я перехожу к использованию JsViews, чтобы я мог использовать привязки данных + инкрементные DOM-обновления (так что мне не нужно повторно отображать весь шаблон). Тем не менее, я получаю интересную ошибку:Почему TR не может быть прямым дочерним элементом TABLE в JsViews?

screen-shot-of-error

Эта проблема выходит далеко, если я убеждаюсь каждый Тг в любом из THEAD, TBODY или TFOOT, до тех пор, как тр не прямой ребенок таблицы. Поэтому мой вопрос заключается в следующем: откуда взялось это дизайнерское решение для JSView? Зачем навязывать это ограничение?

Заранее спасибо.

jsviews.js:83 badParent = {tr: "table"} 
+0

VTC. Спросить, почему автор решил сделать это, на самом деле не подходит для SO и, скорее всего, породит спекуляции и/или дебаты (хотя Борис на самом деле уже намекнул на ответ здесь: http://stackoverflow.com/a/15776198/ 1014822) – JcFx

ответ

1

Да, как говорится выше в комментарии JcFx, это отвечает here.

Как я уже сказал там, JsViews работает с иерархией элементов DOM. Существует несколько способов, которыми браузеры могут динамически изменять DOM в канонической форме, например, вставлять TBODY, даже если вы не помещали его в свою разметку.

Вместо того, чтобы добавлять много кода, перфоманс и потенциальный риск ошибки, если JsViews попытаются автоматически компенсировать это, JsViews вместо этого дает вам сообщение об ошибке в большинстве случаев, когда он обнаруживает, что ваша разметка не была хорошо сформирована , или не соблюдает эти «канонические правила», то есть пропускает TBODY ...

+0

Спасибо. Мне было любопытно. – pedz

 Смежные вопросы

  • Нет связанных вопросов^_^