Задать вопрос
@mmka

Как использовать шаблон handlebars совместно с ajax?

Имеем следующий шаблон:
<script type="text/javascript" id="template" type="text/x-handlebars-template">
      <p>{{ title }}</p>
</script>


И ajax запрос:
$.ajax({
  url: '/ajaxtest',
  dataType: 'json',
  success: function(data) {
    $(".prodlist").empty();
    $(".prodlist").html(data);
  }
});


Как использовать шаблон хандлебарс? И еще один вопрос возвращается json ответ. Как получить доступ к переменным?

На $(".prodlist").empty(); $(".prodlist").html(data); можно не обращать внимание
  • Вопрос задан
  • 3786 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@ClassicRed
возможно уже поздно и вы разобрались самостоятельно, но вот (используется jQuery)
- функция загрузки шаблона Handlebars из внешнего файла (*.hbs):
var getTempl = function (name) {
        if (Handlebars.templates === undefined || Handlebars.templates[name] === undefined) {
            $.ajax({
                url : 'app/templates/' + name + '.hbs',
                success : function(data) {
                    if (Handlebars.templates === undefined) {
                        Handlebars.templates = {};
                    }
                    Handlebars.templates[name] = Handlebars.compile(data);
                },
                async : false
            });
        }
        return Handlebars.templates[name];
    };

- функция загрузки json:
var loadData = function (dataUrl, callback) {
        var response;
        $.ajax({
            url: dataUrl,
            async: false
        }).done(function(data){
            if(isType('Function', callback)) {
                callback.call();
            }
            response = data;
        });
        return response;
    };

и все вместе превращается в :
var data = loadData(some/json-data/url),
      tmplOne = getTmpl('template-one')(data),
      tmplTwo = getTmpl('template-two')(data);

$('body').appned(tmplOne).append(tmplTwo);

про функцию isType() - абзац про класс объекта
Ответ написан
Комментировать
@mmka Автор вопроса
что никто не знает как использовать handlebars c ajax?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽