2013-03-17 38 views
2

總之,我需要什麼 - 以編程方式預編譯(不CLI)車把模板瀏覽器端的功能,並在瀏覽器以這種方式與handlebars.runtime.js使用它:預編譯的手把模板正確的方式運作,因爲玉做

html = template_as_fn(data_object); 

爲什麼我需要它 - 我使用YA ComonJS瀏覽器打包工具,clinch,我也想支持Handlebars。

所以,我正在尋找正確的方式來預編譯Handlebars模板來運行,沒有eval()和其他巫術魔法。

事情就像這個answer

var data = { name: "Greg" }; 
var source = "<p>Howdy, {{ name }}</p>"; 

eval("var templateFunction = " + Handlebars.precompile(source)); 
var template = Handlebars.template(templateFunction); 

template(data); 
=> "<p>Howdy, Greg</p>" 

讓我傷心。

例如,玉,我可以這樣

'.jade' : (data, filename, cb) -> 
    content = Jade.compile data, _.assign jade_settings, {filename} 
    cb null, "module.exports = #{content}" 

使用file processor是否有可能像做翡翠手把用?

回答

1

哦,沒關係!我找到了。

的把手

'.handlebars', (data, filename, cb) -> 
    content = Handlebars.precompile data 
    cb null, "module.exports = #{content}" 

而在模塊兩步解決方法文件處理器:

renderData : (data) -> 
    template_fn = require './template' # /template.handlebars 
    template = Handlebars.template template_fn 

    res = template data 

所以,從現在clinch將支持把手:)