2013-01-13 39 views
0

我敢肯定,這是一個寒冷加上缺乏睡眠的組合,但我卡住了。不寫入HTML與jQuery和Mustache.JS

的代碼不能簡單得多:

$.get('template.tpl', function(tpl) { 
    $.getJSON('json/data2.json', function(data) { 
     var html = Mustache.render(tpl, data); 
     $('#output').html(html); 
    }); 
}); 

Tadaa。如果我在聲明後投擲Console.Log(html),它會正確輸出......但對於我來說,我無法解決爲什麼它不會將文本放置到#output中,就像它應該那樣。在template.tpl之外的獨立$('#output').html("foo");工作沒有問題。

幫助?

解決

解決,得益於asgoth的問題。如果代碼正確 - 在我的.tpl文件中包含模板的腳本標記。他們不再需要了,因爲模板被直接推送到鬍鬚......但正在寫入HTML,這意味着我看不到結果。

我打算去打個盹。

+0

你可以添加console.log的結果嗎?數據是字符串還是json對象? – asgoth

+0

沒有必要 - 那就是訣竅。謝謝。由於我直接從原始.htm中抓取了模板,因此模板文件中有'script'標記。它正在加載 - 但由於它在腳本標籤內,所以我看不到它。 – SteveAtle

回答

0

我以前沒有使用鬍子,但是不應該使用compile

var html = Mustache.compile(tpl)(data); 
+0

它實際上是Mustache.render ...從舊代碼塊中複製/粘貼以嘗試排除問題。接得好。謝謝。 – SteveAtle