Почему я получаю сообщение об ошибке: Попытка отменить рендеринг фрагмента, который не был визуализирован при переходе с ractive.js 0.3.9 на 0.5.5

У меня есть длинный, сложный и немного грязный набор шаблонов, которые нормально работают в 0.3.9, но не в 0.5.5, где я получаю сообщение об ошибке: «Попытка отменить визуализацию фрагмента, который не был обработан».

Мой шаблон очень сложный, но я смог воспроизвести фрагмент, который работает в версии 0.3.9, но не работает в версии 0.5.5.

Вот как это работает в версии 0.3.9: http://jsfiddle.net/Katio/ujx2e/

Этот шаблон в версии 0.5.5 показывает указанную ошибку: http://jsfiddle.net/Katio/W3Lus/

Attempted to unrender a fragment that was not rendered

Редактировать 1:

Thaylon открыл задачу в проекте Ractive на Github: https://github.com/ractivejs/ractive/issues/1003


person Johann Echavarria    schedule 15.07.2014    source источник


Ответы (1)


Должен признаться, я не уверен, в чем корень проблемы.

Тем не менее, измените начало строки 33 в вашем шаблоне на:

{{^.responsable}}<span class="redOutline" data-validationmess="Solicitud ({{num+1}}) '{{../../nombreSubdata.values[0]}}', secci&oacute;n '{{nombre.values[0]}}', responsable no asignado.">(responsable no asignado)</span>{{/.responsable}}

to:

{{^responsable}}<span class="redOutline" data-validationmess="Solicitud ({{num+1}}) '{{../../nombreSubdata.values[0]}}', secci&oacute;n '{{nombre.values[0]}}', responsable no asignado.">(responsable no asignado)</span>{{/responsable}}

и это будет отображаться.

http://jsfiddle.net/W3Lus/2/

Изменить

Довольно минимальный пример, демонстрирующий ошибку: http://jsfiddle.net/W3Lus/9/.

Удалив любую часть, даже статичную <option>, она отрендерится.

Не похоже, что вы делаете что-то не так, похоже, это ошибка.

Изменить

Я предполагаю, что привязка значения выбора к {{.responsable}}, когда оно ни к чему не приводит, вызывает это, если в выборе есть какой-либо параметр, который фактически был бы привязан к несуществующему значению.

Изменить

Минимальные примеры с разными результатами с ошибками: http://jsfiddle.net/W3Lus/13/ http://jsfiddle.net/W3Lus/12/

Один не будет рендерить вообще, другой не будет рендерить ту часть, которую должен.

person Thaylon    schedule 16.07.2014
comment
Вы удалили точку, и шаблон отобразился! Однако точка очень важна для проверки в шаблоне, поскольку она должна проверять каждый элемент в массиве. В любом случае, приятно, что вы нашли в шаблоне именно ту строку с проблемой. - person Johann Echavarria; 16.07.2014
comment
После вашего открытия я попытался создать уменьшенную версию проблемы, которая ее изолирует. Поэтому я снова использовал ^dot {{^.responsable}} с 0.5.5, но он работает нормально jsfiddle.net /W3Lus/5 я не понимаю - person Johann Echavarria; 17.07.2014
comment
Я вставил исходный фрагмент в ваш новый пример, и ошибка снова появилась. jsfiddle.net/W3Lus/7 - person Thaylon; 17.07.2014
comment
Спасибо. Вы ответили на мой вопрос. Теперь это кажется ошибкой в ​​версии 0.5.5, потому что ваш минимальный пример работает нормально в версии 0.3.9: jsfiddle.net/W3Lus/16, но показывает ошибку Попытка отменить рендеринг фрагмента, который не отображался в версии 0.5.5: jsfiddle.net/W3Lus/13 - person Johann Echavarria; 18.07.2014