Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   самодельный мини шаблонизатор (https://javascript.ru/forum/events/62291-samodelnyjj-mini-shablonizator.html)

Tecvid 03.04.2016 13:48

самодельный мини шаблонизатор
 
добрый день, скажите пожалуйста, есть ли какие-то недостатки такого самодельного мини (или даже микро, ну или нано:-?) шаблонизатора?

function parse(template, data) {
	for (var key in data)
		template = template.replace(new RegExp('{' + key + '}', 'g'), data[key]);

	return template;
};


вроде работает даже для огромных кусков html, но хотел узнать мнение профессионалов, можно ли предпочесть это другим известным и мщным шаблонизаторам?
уточню, что задача только изменять куски {text_to_be_replaced} на соответсвущие значения, больше ничего, никаких вычислений, и даже если понадобитсяя цикл, то буду делать это вне шаблона, как-то так:

var data = 'данные_полученные с сервера',
	len  = data.length - 1;

for ( ; len >= 0; --len)
	parent.appendChild(parse(template, data[len]));


надеюсь ясно выразился :)

protoquest 03.04.2016 14:04

а зачем вам цикл дополнительно? Вы можете одним реплейсом обойтись.
Цитата:

Сообщение от Tecvid
for ( ; len >= 0; --len)

используйте while, глаза ломает
Цитата:

Сообщение от Tecvid
{' + key + '}

не пойму, почему вы фигурные скобки не экранируете? это так задумано чтоли?
Цитата:

Сообщение от Tecvid
можно ли предпочесть это другим известным и мощным шаблонизаторам?

А Вы думаете почему хомячки пользуются *известными и мощными*? Потому что свой не могут написать. Свой всегда будет гибче и мощней, так как он легко расширяем и изменяем под конкретные нужды

Tecvid 03.04.2016 14:11

Цитата:

Сообщение от protoquest
а зачем вам цикл дополнительно?

это если с сервера пришли допустим несколько комментариев, то их надо перебирать в цикле
Цитата:

Сообщение от protoquest
не пойму, почему вы фигурные скобки не экранируете? это так задумано чтоли?

да, шаблоны будут таким образом выглядеть:
<div class="comment" data-comment-id="{comment_id}">{comment_text}</div>

работает и без экранирования
Цитата:

Сообщение от protoquest
А Вы думаете почему хомячки пользуются *известными и мощными*? Потому что свой не могут написать. Свой всегда будет гибче и мощней, так как он легко расширяем и изменяем под конкретные нужды

ясно, значит спокойно могу и этим пользоваться) благодар за совет


Часовой пояс GMT +3, время: 02:36.