Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.07.2010, 01:42
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

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кило
__________________
.ня

Последний раз редактировалось tenshi, 27.10.2010 в 14:53.
Ответить с цитированием
  #2 (permalink)  
Старый 14.07.2010, 01:49
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Какой-то 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 в функционале шаблонизатора сомнительна.

Последний раз редактировалось Octane, 14.07.2010 в 02:18.
Ответить с цитированием
  #3 (permalink)  
Старый 14.07.2010, 02:16
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

а что нужно вызвать match - это очевидно? х)
__________________
.ня
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2010, 02:31
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Да. Все эти func(…)(…)(…)(…)(…)… только чтобы поиграться, показать насколько JS крутой, а в скриптах массового использования, думаю, лучше применять привычную всем схему:
var object = new Constructor(…);
object.method(…)

Последний раз редактировалось Octane, 14.07.2010 в 03:03.
Ответить с цитированием
  #5 (permalink)  
Старый 14.07.2010, 09:16
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

"привычная всем схема" не удобна в использовании
__________________
.ня
Ответить с цитированием
  #6 (permalink)  
Старый 14.07.2010, 09:55
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от tenshi
"привычная всем схема" не удобна в использовании
Вчера прочитал статью по этому шаблонизатору. Код пугает немного. Например:
var link= TT.dom( '<a href="{uri}">{title}</a>' )({ uri: '/', title: 'на старт' })

Это же можно сделать проще, выполняя одну функцию вместо двух.

Насколько я понял, шаблонизатор не умеет использовать в качестве шаблона DOM-ноды?
Ответить с цитированием
  #7 (permalink)  
Старый 14.07.2010, 14:37
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от tenshi
TrueTemplates


По мне так это не шаблонизатор, а навороченый sprintf.
Ответить с цитированием
  #8 (permalink)  
Старый 14.07.2010, 15:15
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от B~Vladi
По мне так это не шаблонизатор, а навороченый sprintf.
все шаблонизаторы с этого начинались.
а затем, приходит необходимость вносить в шаблоны логику, и идея разделения контента и логики рушится
Ответить с цитированием
  #9 (permalink)  
Старый 14.07.2010, 15:17
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Gvozd
и идея разделения контента и логики рушится
Нет такой идеи. Есть идея разделения бизнес-логики и логики отображения. В обоих случаях нужна логика. Просто одна не должна вмешиваться в другую.
Ответить с цитированием
  #10 (permalink)  
Старый 14.07.2010, 15:24
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от B~Vladi
Это же можно сделать проще, выполняя одну функцию вместо двух.
проще - не всегда лучше, один - не всегда лучше, чем два
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск