2012-04-02 55 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. 傳遞將在模板中插入和HTML應該由函數返回一個JSON對象。

更新:

得到的答案,有代碼中的一個錯字:這個工程。

在調用函數時,參數是源代碼,但被用作模板。

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全局變量的值 - 它不應該是「未定義」)。
此外,你應該檢查句柄是否真的是你認爲它的地方 - 也許你應該使用絕對的URL而不是相對的。

+0

我只是不知道如何使用上述功能,對js來說很新穎。它返回什麼?我怎麼稱呼它?當我將這整個代碼放在

0

首先嚐試檢查你是否在該函數中工作。如果你是那麼檢查你是否從ajax調用得到響應或者...並使用try ... exception - 這樣如果ajax設置中出現錯誤,你就可以直接知道它。

只有當您從ajax調用中獲得結果時,才能顯示結果。