yandex-ui / noscript

Noscript: JavaScript MVC Framework for building SPA
http://yandex-ui.github.io/noscript/
MIT License
34 stars 22 forks source link

#585: generateHTML returns main view node without ns-root wrapper #587

Closed vitkarpov closed 8 years ago

vitkarpov commented 8 years ago

Кажется, generateHTML не должен возвращать дерево видов, обернутое в ns-root — ожидаешь получить html, готовый для вставки непосредственно в определенную ноду в серверном шаблоне, а ns-root это служебная обертка для удобного поиска в методах _extractNode и _extractNodeByKey.

Избавился от обертки в яте, перенеся ее в ns.html2node. По сути, метод должен принимать html-строку и вернуть дом-ноду, детками которой будет DOM, полученный из этого html, соответственно, этот метод и должен думать про корневую ноду, а не яте-шаблон.

vitkarpov commented 8 years ago

@Rebulus @doochik @alexeyten

p.s. странная штука с тестами в трависе — показывает какие-то ошибки jshint, а локально все норм

vitkarpov commented 8 years ago

поправил

vitkarpov commented 8 years ago

https://github.com/yandex-ui/noscript/issues/585

alexeyten commented 8 years ago

Что-то мне не нравится, что _renderUpdateTree знает что-то лишнее

vitkarpov commented 8 years ago

Да, меня и самого смущает. Можно подумать в сторону того, чтобы избавиться от ns-root, для этого методы поиска ноды должны работать иначе, сейчас расчитывают на то, что всегда есть корневая нода. @doochik что думаешь?

Rebulus commented 8 years ago

@vitkarpov кажется, эту ноду можно генерировать в момент преобразования HTML в DOM, либо попробовать использовать document fragment.

vitkarpov commented 8 years ago

@doochik @Rebulus @alexeyten

Избавился от обертки в яте, перенеся ее в ns.html2node. По сути, метод должен принимать html-строку и вернуть дом-ноду, детками которой будет DOM, полученный из этого html, соответственно, этот метод и должен думать про корневую ноду, а не яте-шаблон.

alexeyten commented 8 years ago

:+1:

Rebulus commented 8 years ago

https://github.com/yandex-ui/noscript/blob/088782ceb8215beffc5055d3241c217bdf094aac/test/spec/ns.view.js#L207 - тут тоже стоит убрать ns-root для идентичности.

vitkarpov commented 8 years ago

ага, точняк

vitkarpov commented 8 years ago

done

Rebulus commented 8 years ago

👍

vitkarpov commented 8 years ago

@doochik мерджим?

Katochimoto commented 8 years ago

Алерт! https://github.com/yandex-ui/noscript/issues/585#issuecomment-216789013