[v6] Cannot create property 'elm' on string 'div,[object Object]'

Здравствуйте.

Пытаюсь перейти на v6, не могу победить ошибку:
*

*
Это из-за проверки на закрытие html тегов в шаблонных литералах?
Все шаблоны отдают нормальный html, уже отлажено в v5.
Подскажите, пожалуйста, как можно отключить эту проверку html?
И как можно это отладить, как понять в каком месте проблема?

Спасибо.

1 Like

Да, это из-за этого. Отключить нельзя, так как компилятор просто не сможет скомпилировать шаблон.

Искать теги, скорее всего теги <br>, <img> и <input>

А как быть, если в условии, только начало HTML тега?
${a?<div>:<span>} их тоже самозакрывать надо?

Как правильно записать такое условие?..
${list.smart?'</div></a>':‘${list.func?'</a>':'</div>'}‘}

Добавление $h перед каждой литеральной строкой в каждом условии ${a?string:string} накладное нововведение, надо переписывать все шаблоны, десятки условий и вложенные в друг друга типа <div ${a?${b?...:...}:${c?...:...}}>, которые уже отлажены в v5.

Вообще, было бы здорово без данной компиляции обойтись, чтобы смягчить переход на v6…

P.S. Компиляция шаблонов нужна для более быстрого и дешевого обновления HTML контент (через $update)?

Добавлено:
С такими раскладом наши шаблоны нереально перевести на v6… :expressionless:

Did you find solution for this error?

Template7 expressions are creating problem for me when migrating from 5 to 6.

{{userName}} is generating error "Cannot create property 'elm' on string '{{userName}},[object Object]'"

You need to rewrite everything and add $h before every literal line

1 Like