2013-05-15 58 views
5

我正在嘗試emblem.js。這是一個非常好的包裝Handlebars寫模板。但是,文檔有點ember.js和handlebars.js相關。我想使用沒有Ember的Emblem.js,但是如何編譯模板沒有真正的解釋。編譯沒有Ember的Emblem.js

因此,我們可以使用emblem.js沒有燼(或更好,沒有Handlebars依賴)?我做它現在呈現模板的方式,我有這樣的功能:

function render(target, tmpl, data) { 
    var source = tmpl.html(); 
    var template = Emblem.compile(Handlebars, source); 
    var result = template(data); 

    target.html(result); 
} 

是正確的方式編譯會徽嗎?它有效,但我有一種直覺,認爲有更好的方法來做到這一點。在Handle中,編譯線非常相似:

var template = Handlebars.compile(source); 

感謝您的回答。

回答

7

你實際上做得很對。

Emblem會彙編到Handlebars運行時,因此需要您指定要編譯爲哪個Handlebars變體。在你的情況,因爲你不想灰燼功能,你會希望

Emblem.compile(Handlebars, source); 

如果你想灰燼的支持,你需要使用Ember.Handlebars變種

Emblem.compile(Ember.Handlebars, source); 

我我一定會確保將這些內容添加到文檔中。

+0

謝謝!請做。這些文檔並沒有真正解釋這一點,我相信也有其他人也對如何做到這一點感到困惑。 – Henson

+0

我一直在Ember項目中與Emblem一起工作,但在我的新公司他們使用Backbone,你的回答意味着可以使用明確的Emblem而不必嚴格使用Ember.js? – htatche

+0

@htatche是的,只需使用'Emblem.compile(把手,源);'而不是Ember.Handlebars變體。 –