2013-02-06 33 views
1

我加載此Handlebars.js模板:使用下面的代碼加載把手模板返回文檔對象,而不是字符串

$.ajax({ 
    url : 'collection.handlebars', 
    success : function (data) { 
     Handlebars.templates["collection"] = Handlebars.compile(data); 
    }, 
    async : false 
}); 

模板編譯失敗與

 
<ul></ul> 

與AJAX以下消息在瀏覽器控制檯中:

Uncaught Error: You must pass a string to Handlebars.compile. You passed [object Document] 

調試後,我注意到在成功回調中返回的data是HTML文檔,而不是字符串。不過,如果我更改模板:

 
<ul></ul> &nbsp 

data在成功回調接收爲一個字符串,一切正常。

我正在使用Handlebars 1.0 RC2和Chrome 24.有什麼建議嗎?

+0

能否請你解釋一下步驟 「Handlebars.templates [」 收藏 「] = Handlebars.compile(數據);」在這裏做?我面臨着類似的問題,我必須將數據從ajax傳遞到句柄模板。 –

回答

1

你需要指定AJAX的數據類型:

$.ajax({ 
    url : 'collection.handlebars', 
    success : function (data) { 
     Handlebars.templates["collection"] = Handlebars.compile(data); 
    }, 
    dataType: "text", 
    async : false 
}); 
相關問題