Тема: Snakeskin
Показать сообщение отдельно
  #145 (permalink)  
Старый 11.07.2014, 12:56
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сейчас продумываю такую концепцию, как вызываемые блоки:

{template foo()}
	{forEach arr => el}
		{block elem(el)}
		    ...
		{/}
	{/}
{/}


Конструкция с block будет отрендерена как

if (!foo.elem) {
    foo.elem = function (el) {
        ...
    };
}

foo.elem(el);


Т.е. создаётся функция, которая сохраняется как свойство функции-шаблона. Это решает проблему, когда нужно создать подшаблон, который должен иметь доступ к переменным замыкания главного шаблона и быть доступен для повторного вызова "вне шаблона", т.е. из JS, но в тоже время будет являться структурной единицей Snakeskin, т.е. можно явно переопределять в дочернем шаблоне и использовать директиву super.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 11.07.2014 в 13:03.
Ответить с цитированием