需要一个Coffeescript包含函数,这样就可以在编译javascript时加载外部mustache模板而不会混杂在coffee文件中。
实际上,您可以在运行时加载.mustache文件,但需要使用ajax请求调用它们,并涉及一些性能惩罚。
我想预编译一些静态mustache模板并将它们包含在生成的javascript函数中,这些函数可以被Stitched并压缩成单个文件。
是否有针对此目的的项目或脚本?
需要一个Coffeescript包含函数,这样就可以在编译javascript时加载外部mustache模板而不会混杂在coffee文件中。
实际上,您可以在运行时加载.mustache文件,但需要使用ajax请求调用它们,并涉及一些性能惩罚。
我想预编译一些静态mustache模板并将它们包含在生成的javascript函数中,这些函数可以被Stitched并压缩成单个文件。
是否有针对此目的的项目或脚本?
jsttojs templates compiled/templates/index.js --ext mustache --watch
或者使用grunt解决方案,grunt-jsttojs
我正在考虑做类似的事情。我还没有尝试过,但似乎可以使用Node.js和Mu(Node.js的Mustache构建)来完成这个任务。伪代码如下...
var compiledTemplate = Mu.compile("myTemplateFile.html")
fs.writeFile("myCompiledTemplate.js", compiledTemplate.toString());
<script type="unknown" id="id_of_template"></script>
render = (template) ->
view =
words: [ 'hello', 'there' ]
template = $('#' + template).html()
html = Mustache.to_html template, view
John Resig在他的文章中介绍了一种技术,可以帮助我们使用JavaScript进行微型模板设计。你可以参考http://ejohn.org/blog/javascript-micro-templating/
首先,您可以使用以下内容:
<script type="text/x-mustache" id="tid...">
... mustache template ...
</script>
为了将模板包含在专用脚本块中,而不是作为代码中的字符串。
getElementByID()
+ innerHtml()
将给你它的源代码,你可以使用它。
关于Mustache模板 - 严格来说,你无法编译它。每次“实例化”模板时,都会解释模板。
如果您确实需要编译它们,请考虑使用我的Kite引擎: http://code.google.com/p/kite/或任何其他可编译的模板: http://jsperf.com/dom-vs-innerhtml-based-templating/99
如果有帮助的话,您可以使用Mustache.to_html()直接在源代码中渲染模板字符串。