|
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, время: 21:54. |
|