Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.06.2016, 13:14
Новичок на форуме
Отправить личное сообщение для LimeSoft Посмотреть профиль Найти все сообщения от LimeSoft
 
Регистрация: 19.06.2016
Сообщений: 2

twig.js - inline template не работают
https://github.com/twigjs/twig.js/wiki - вот тут пишут аналог шаблонизатора twig (php).

Пример на той-же странице не рабочий, более того я не могу найти собранный файл twig.js, его предлагают скомпилить но непонятно в какой среде да и зачем мне с этим париться? (файл взял в одной из папок с примерами)

Удобно было бы использовать один шаблонизатор на сервере и в кшиенте.

Конкретно проблема: если template грузится ajax-om с сервера - всё работает как нужно, если прописывается (как в примере) прямо в js - выводит только статический текст (без элементов, итерации и разметки).

Прощу помощи в этом вопросе.

Так-же можете предложить другой шаблонизатор на js (а если есть его версия для бэкэнда на php - то вообще шикарно). Самое главное для меня это хороший функционал - с логикой вывода как в ЯП, и модульность - чтоб можно было повторно использовать куски шаблонов.
Первый опыт охота получить с нормальной библиотекой
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2016, 14:15
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

LimeSoft,

Цитата:
его предлагают скомпилить но непонятно в какой среде да и зачем мне с этим париться? (файл взял в одной из папок с примерами)
В среде Node.js с использованием фреймворка Express.

Цитата:
если прописывается (как в примере) прямо в js - выводит только статический текст (без элементов, итерации и разметки).
А ты js файл с twig.js в html страничке подключил? Вроде всё работает.

npm install twig

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script src="./node_modules/twig/twig.js"></script>
<script>
var twig = Twig.twig; 
var template = twig({
    id: "list", // id is optional, but useful for referencing the template later
    data: "{% for value in list %}{{ value }}, {% endfor %}"
});

var output = template.render({
    list: ["one", "two", "three"]
});

console.log(output); // output = "one, two, three, "

</script>
	
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 20.06.2016, 02:57
Новичок на форуме
Отправить личное сообщение для LimeSoft Посмотреть профиль Найти все сообщения от LimeSoft
 
Регистрация: 19.06.2016
Сообщений: 2

Сообщение от destus
А ты js файл с twig.js в html страничке подключил?
Естественно, и в консоли chrome ошибок не было. Более того, если он подгружает шаблон с сервера, с указанием имени файла - всё работает на ура(!). Если же inline - то выводит статичный текст игнорируя все содержимое блоков с логикой. по типу "Привет, {{name}}" - только "Привет, ". Повторюсь - текст шаблона в файле на сервере и при inline инициализации шаблона идентичен.
<script type="text/javascript">

    function testme() {

        var twig = Twig.twig;
        var template = twig({
            id: "list", // id is optional, but useful for referencing the template later
            //data: "static_text1 {% for value in list %}<b>{{ value }}</b>, {% endfor %} static_text2",
            href: "views/js/test.twig",
            async: false
        });
        var output = template.render({
            list: ["one", "two", "three"]
         });


        console.log(output); //static_text1 <b>one</b>, <b>two</b>, <b>three</b>,  static_text2
        $("#testid").html(output);
    }

</script>

Наверное я подключаю "не тот файл" twig.js. Нет у меня node.js сервера и компилить не могу, да и не хочу этот квест проходить. Нормальный/минифицированный файл они спрятали где-то в глубинах git репозитория либо посчитали что тем кто будет использовать эту библиотеку такая хрень не нужна. а правда, зачем?

Последний раз редактировалось LimeSoft, 20.06.2016 в 03:12.
Ответить с цитированием
  #4 (permalink)  
Старый 26.03.2017, 17:37
Новичок на форуме
Отправить личное сообщение для Alexof Посмотреть профиль Найти все сообщения от Alexof
 
Регистрация: 26.03.2017
Сообщений: 1

Вижу тема не новая, но решение так никто и не написал, а такая же проблема возникла и у меня - гугл по моему запросу выдал только эту тему (из адекватных).
Ссылка на готовый twig.js файл есть по этой ссылке https://github.com/philsbury/twigjs-bower в папке twig.
А решение проблемы оказалось простым - просто вынес весь код примера в отдельный js файл, подключил - и все заработало!

Спасибо за внимание
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Snakeskin kobezzza Ваши сайты и скрипты 769 27.08.2019 04:30
Не работают селекторы jQuery iBars jQuery 11 26.03.2015 22:05
Не работают два JS скрипта вместе на одной странице 5art@mail.ru Events/DOM/Window 44 15.07.2012 18:51
Template CMS 2.0 Awilum Ваши сайты и скрипты 40 14.05.2011 17:30
Template CMS - маленькая и быстрая CMS Awilum Ваши сайты и скрипты 3 22.09.2010 23:19