2012-04-02 2 views
1

Как указано здесь: http://www.jblotus.com/2011/05/24/keeping-your-handlebars-js-templates-organized/Как я могу назвать эту функцию javascript?

Я пытаюсь использовать эту функцию:

(
    function getTemplateAjax(path, callback) { 
     var source; 
     var template; 

     $.ajax({ 
      url: path, 
       success: function(data) { 
        source = data; 
        template = Handlebars.compile(source);  

        //execute the callback if passed 
        if (callback) callback(template); 
      } 
     }); 
    } 

    //run our template loader with callback 
    (getTemplateAjax('js/templates/handlebarsdemo.handlebars', function(source) { 
     //do something with compiled template 
     $('body').html(template); 
    })() 
)() 

Я новичок в JS, так как я могу использовать это?

Я пытаюсь:

  1. пройти путь рули файла
  2. передать объект JSON, который будет вставлен в шаблон и HTML должен быть возвращен обратно функциями.

Update:

Получили ответ, что была опечатка в коде: это работает.

При вызове функции аргумент был источником, но использовался как шаблон.

function getTemplateAjax(path, callback) { 
    var source; 
    var template; 

    $.ajax({ 
     url: path, 
      success: function(data) { 
       source = data; 
       template = Handlebars.compile(source);  
       if (callback) callback(template); 
     } 
    }); 
} 

getTemplateAjax('js/templates/handlebarsdemo.handlebars', function(template) { 
    data = {title: "hello!" , body: "world!"} 
    $('body').html(template(data)); 
}) 

ответ

0

Код верный и вы, кажется, правильно его назвали.
Вы должны убедиться, что вы правильно настроили jQuery (просто проверьте значение глобальной переменной jQuery - это не должно быть «undefined»).
Кроме того, вы должны проверить, действительно ли рули, где вы думаете, - возможно, вы должны использовать абсолютный URL вместо относительного.

+0

Я просто не знаю, как использовать вышеуказанные функции, очень новые для js. Что он возвращает и как я могу это назвать? Когда я помещаю весь этот код в тег

0

Сначала попробуйте проверить, являются ли ваши функции goint в этой функции или нет. Если вы затем проверяете, что получаете ответ от вызова ajax или нет ... и используйте try ... exception - так что если что-то не так в настройке ajax, вы сразу это знаете.

Результаты могут быть показаны только в том случае, если вы получили результаты от своего аякс-звонка.

Смежные вопросы