如果你到現在還沒有找到正確的問題,答案很簡單。 Handlebars在命令行中附帶了一個C預編譯器,如果您可以訪問shell,那麼您可以簡單地編譯每個分隔的模板或將它們合併成一個文件。
您可以通過npm安裝Handlebars,或者在您的系統上構建它。 外殼上,你可以查看幫助文件
$>把手[ENTER]
你會看到一個幫助文件像> - ˚F - 輸出輸出文件等等等等。 - 米--min減小輸出
$>把手mysupertemplate.handlebars -f compiled.js -m( 「-m」 如果 你要來縮小js文件)
在瀏覽器中運行Handlebars.compile是一個巨大的性能損失,因此在將文件發送到瀏覽器之前,值得嘗試在服務器上進行預編譯。
要註冊的手把模板,在瀏覽器中,你必須加載它們像這樣:
var obj = {"foo":"bar"}
var template = require("./mytemplate-file.js") // require.js example
template = template(Handlebars) // Pass Handlebars Only if the template goes mad asking for his Father
var html = Handlebars.templates[template-name](obj)
例如,如果你有更多然後在「模板文件」註冊一個模板,你將能夠後訪問在需要使用
var html = Handlebars.templates["templateName"]({"foo":"bar"});
你可以更進一步通過註冊文件中的所有知道助手和/或製作自傭工像這樣的諧音叫名字的所有模板..
*// This will be the helper in you app.js file*
Handlebars.registerHelper("mypartials", function(partialName, data) {
var partial = Handlebars.registerPartial(partialName) || data.fn
Handlebars.partials[partialName] = partial
})
而在你的模板文件,你可以把這個...
{{#mypartial "divPartial"}}
<div id="block"><h2>{{foo}}</h2><p>{{bar}}</p></div>
{{/mypartial}}
{{#mypartial "formPartial"}}
<form id="foo"><input type="text" value="{{foo}}" name="{{bar}}"></form>
{{/mypartial}}
現在,您可以通過調用
var html = Handlebars.partials["divPartial"]({"foo":"bar","bar":"foo"})
var formHtml = Handlebars.partials["formPartial"]({"bar":"bar","foo":"foo"})
希望這有助於有點訪問此文件..
有無你看看[handlebars_assets](https://github.com/leshill/handlebars_assets)是如何工作的?有可能有一堆Rails的噪音,但也許它會提供一些見解。 –
感謝您的輸入;我檢查了它,但它提供了一個Sprockets引擎,它委託給其他東西,最後我也沒有跟蹤它。不過,我找到了答案,它使用eval,總體來說不是很漂亮,但至少它起作用,並且似乎提高了性能。 –
有趣的是,在這裏,爲什麼這些答案都沒有被標記爲答案......丹尼爾似乎已經在他的答案中做了很多工作,並且很高興看到他爲之付出了回報。當另一個用戶(例如我自己)正在尋找答案時,它也使得它更容易實際上有一個被標記爲已接受的答案。 – Steve