【发布时间】:2015-05-19 18:50:23
【问题描述】:
我将underscore.js 用于我的模板,这些模板存储在多个单独的XXX_tpl.html 文件中,类似于:
<script type="text/x-template" id="tpl_XXX">
<h1>hi</h1>
</script>
然后我在backbone.js 视图中使用如下:
render: function () {
this.$el.html($('#tpl_XXX').text());
}
我现在正在使用 brunch.js 构建工具,它可以很好地将我所有的 libs/js/css 代码输出到几个优化的文件中,但是我在管理/组织我的模板时遇到了问题。如何制作 brunch.js 构建工具以将所有 *_tpl.html 文件附加到 index.html 的末尾?我在网上看到的所有示例都显示了如何使用 brunch.js 将模板合并到 .js 文件中,但我还不明白它是如何工作的(模板是 html/js 的混合,我失去了通过 ID 和将模板存储在.js 文件中时的语法格式/突出显示)。
第一季度。如果我所做的是正确的(多个不同.tpl.html 文件中的多个模板在构建时都附加在index.html 的末尾)那么我如何使build.js 合并所有这些?
第二季度。如果我做的不对,有什么更好的方法:
- 拥有多个组织有序且易于管理的模板
- 不创建额外的http请求来拉/全部编译到一个文件中
- 可以从backbone.js 模型轻松访问
- 想在我的 IDE 中为模板标记实现语法高亮(即没有 JS 字符串连接等)
【问题讨论】:
-
请记住,您的下划线模板确实被转换为 JS 函数。通过将它们预编译为 .js 并将其与应用程序的其余部分合并,您不必在渲染时进行该转换。要在没有 ID 访问的情况下进行这项工作,最简单的方法是按照已经建议的方式查看 require.js,或者如果您想要更轻松的解决方案,请使用 browserify ;)
标签: backbone.js underscore.js template-engine brunch