|
TrueTemplates - самый быстрый или безопасный шаблонизатор
использовать так:
var wrongField= TT.string( 'field "{0}" is not found' )
..
throw wrongField([ 'xxx' ])
var makeUserTagLink= TT.uri( '/user/{user}/tag/{tag}' )
..
location.href= makeUserTagLink({ user: 'tenshi', tag: 'xxx' })
var makeContent= TT.dom( '<h1>{title}</h1><p>{text}</p>' )
..
contentNode.appendChild( makeContent({ ttle: 'xxx', text: 'xxx not found' }) )
скачать: http://bca07c6c88b166729f9741ef748fc...oject/tt/tt.js - 2.5кило |
Какой-то API неудобный, почему бы не сделать так:
var wrongField = new TrueTemplate("field “{0}” is not found");
throw wrongField.match(["xxx"])
? -------- а… там разные типы, ну все равно не очевидно, что string, uri или dom вернут функцию. -------- Даже если от new избавится:
var wrongField = TrueTemplate("field “{0}” is not found");
throw wrongField.match(["xxx"])
было бы удобнее, чем возвращать фукнцию.А необходимость автоматического encodeURIComponent и парсинга HTML в функционале шаблонизатора сомнительна. |
а что нужно вызвать match - это очевидно? х)
|
Да. Все эти func(…)(…)(…)(…)(…)… только чтобы поиграться, показать насколько JS крутой, а в скриптах массового использования, думаю, лучше применять привычную всем схему:
var object = new Constructor(…); object.method(…) |
"привычная всем схема" не удобна в использовании
|
Цитата:
var link= TT.dom( '<a href="{uri}">{title}</a>' )({ uri: '/', title: 'на старт' })
Это же можно сделать проще, выполняя одну функцию вместо двух. Насколько я понял, шаблонизатор не умеет использовать в качестве шаблона DOM-ноды? |
Цитата:
По мне так это не шаблонизатор, а навороченый sprintf. |
Цитата:
а затем, приходит необходимость вносить в шаблоны логику, и идея разделения контента и логики рушится |
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 04:03. |
|