我该如何调用这个javascript函数?

时间:2012-04-02 08:24:51

标签: javascript

如此处所述:http://www.jblotus.com/2011/05/24/keeping-your-handlebars-js-templates-organized/

我正在尝试使用此功能:

(
    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应该由函数返回。
  3. 更新

    得到答案,代码中有一个拼写错误:这有效。

    在调用函数时,参数是source,但被用作模板。

    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));
    })
    

2 个答案:

答案 0 :(得分:0)

代码是正确的,您似乎正确地调用它 你应该确保你正确设置了jQuery(只需检查jQuery全局变量的值 - 它不应该是“未定义”)。
此外,您应该检查把手是否真的在您认为的位置 - 也许您应该使用绝对URL而不是相对URL。

答案 1 :(得分:0)

首先尝试检查你是否是该功能的goint。如果你那么检查你是否从ajax调用得到响应...并使用try ... exception - 这样如果在ajax设置中出现问题,你就会立刻知道它。

只有在从ajax调用中获得结果时,才能显示结果。