Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #101 (permalink)  
Старый 07.02.2014, 14:42
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Выпустил новую версию: 3.2.0.

1) Добавлена директива $forEach для совместной работы с Collection:

{$forEach [1, 2, 3] => el, i}
{end}

{$forEach [1, 2, 3] => {filter: ':el > 2'} => el, i}
{end}


2) Улучшена работы с пробельными символами;
3) Исправлены найденные ошибки.

ЗЫ: в пример в фидле подключил также Collection, что бы можно было потестить.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 07.02.2014 в 15:41.
Ответить с цитированием
  #102 (permalink)  
Старый 14.04.2014, 18:33
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Выпустил версию 3.3.0

1) Добавлена новая директива interface, которая позволяет декларировать шаблоны, которые войдут в скомпилированный файл как пустые функции с входными параметрами;

{interface foo(a1, a2, a3)}
    ...
{end}


=>

function foo(a1, a2, a3) {}


Таким образом сейчас существует 3 директивы для декларации шаблона:

*) template - простая декларация шаблона;
*) interface - декларация шаблона, но в конечный JS войдёт только интерфейс;
*) placeholder - декларация шаблона доступного только на этапе трансляции.

2) Исправлены некоторые ошибки;
3) Улучшена обработка ошибок на этапе трансляции.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 14.04.2014 в 18:48.
Ответить с цитированием
  #103 (permalink)  
Старый 14.04.2014, 18:50
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

А почему не работает, если используемое в шаблоне пространство имен уже было объявлено ранее? Что мешает сделать в нем ссылку на функцию шаблона?
Ответить с цитированием
  #104 (permalink)  
Старый 14.04.2014, 18:52
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Octane Посмотреть сообщение
А почему не работает, если используемое в шаблоне пространство имен уже было объявлено ранее? Что мешает сделать в нем ссылку на функцию шаблона?
Не совсем понял, можно пример?

***

Переопределять шаблоны можно, пример (тут в новый шаблон ссылается на старый через супер-глобальную переменную)
{template helloWorld(name = 'world')}
    <h1>Hello {name}!</h1>
{/template}
    
{old = helloWorld}
    
{template helloWorld()}
    {call @old()}
{/template}
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 14.04.2014 в 19:03.
Ответить с цитированием
  #105 (permalink)  
Старый 14.04.2014, 19:03
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

http://jsfiddle.net/PqQ5w/2/
Uncaught TypeError: undefined is not a function
Ответить с цитированием
  #106 (permalink)  
Старый 14.04.2014, 19:06
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Octane Посмотреть сообщение
http://jsfiddle.net/PqQ5w/2/
Uncaught TypeError: undefined is not a function
Гм, это баг, ща буду разбираться, спс за репорт

upd: хм, баг воспроизводится только в фидле, мистика А вообще так можно делать и так нужно делать, ибо это одна из самых первых фич которые я закладывал в шаблонку когда я её разрабатывал.

upd upd: это особенность работы в фидле и компиляции в живом режиме, мб придумаю как зафиксить.

***

Вот так работает, видимо из-за eval-ов в фидле глючит.

window.ns = {};
Snakeskin.compile(document.getElementById('templates'));
document.getElementById('test').innerHTML = ns.helloWorld();
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 14.04.2014 в 19:58.
Ответить с цитированием
  #107 (permalink)  
Старый 20.04.2014, 21:55
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

https://developer.chrome.com/extensi...yPolicy#JSEval
__________________
.ня
Ответить с цитированием
  #108 (permalink)  
Старый 20.04.2014, 23:42
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

tenshi, не совсем понял причём тут манифест аддонов к хрому, но кстати, выполнение eval там можно разрешить в том же манифесте, я писал в своём время аддоны к хрому (как для первой версии манифеста, так и для второй).
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 21.04.2014 в 08:11.
Ответить с цитированием
  #109 (permalink)  
Старый 21.04.2014, 17:47
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

При том, что не во всех окружениях эвал разрешен. И вообще замыкания быстрее эвалов.

Кроме экстеншенов есть еще апликейшены, где говорят нельзя включить.
__________________
.ня
Ответить с цитированием
  #110 (permalink)  
Старый 21.04.2014, 18:22
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

tenshi, ну дык, предварительная компиляция и никаких эвалов.
__________________
kobezzza
code monkey
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
express-snakeskin - view через snakeskin для express melky Ваши сайты и скрипты 5 10.06.2014 11:35