我从javascript开发开始,做了一个简单的项目,其中node.js作为rest API和使用主干的客户端,一切看起来都很完美,直到我想从我的js中获取模板。
我找到了不同的方法,其中一些方法有一些时间(比如一岁),但我无法理解哪一方可能更好:
带有html代码
的var的.js文件专业人士 - >易于加载,易于传递给下划线以进行编译。
缺点 - > scape每一行。
app.templates.view = " \
<h3>something code</h3> \
";
加载模板:
template: _.template(app.templates.view)
External template in Underscore
使用require.js加载文本插件。
专业人士 - &gt;根据需要加载不同的模板。
缺点 - &gt;我不喜欢将所有内容放在“加载器”函数中的方法......
define(["TemplateEngine", "text!templates/template.html"], function(...
RequireJS: Loading modules including templates and CSS
使用AJAX请求加载模板的函数。
专业人士 - &gt;您可以加载所需的模板并添加本地存储空间。
缺点 - &gt;似乎我必须将所有模板合并到一个用于生产环境的文件中。
function() {
var templateLoader = {... $.get calls ...}
Best way to asynchronously load underscore templates
http://api.jquery.com/jQuery.template/
似乎需要是最好的方法,但也许我错过了一些东西,我不想让事情尽可能干净,因为我正处于学习/娱乐阶段:D
任何有良好结构或任何亮点的好文章或github项目都将受到赞赏。
感谢。
原谅任何重大的拼写错误,而不是说英语的人:)
- EDIT-- 发现了一些有趣的视频,以了解如何使用require.js启动和包装 http://www.youtube.com/watch?v=VGlDR1QiV3A
答案 0 :(得分:2)
要求是您列出的选项的好选择。
有没有理由你没有考虑过:
将模板存储在使用<script type='text/template'>
个节点的页面中?
将模板存储为文本(非JS)文件,并通过XHR在使用它们的页面上加载它们?
答案 1 :(得分:2)
我建议将require.js与文本插件一起使用。将html模板混合为javascript变量中的字符串是个坏主意,以及使用<script type="text/template"></script>
之类的东西。
以下是关于backbone.js的一个非常好的系列,其中包括模板加载和项目构建:http://dailyjs.com/2012/11/29/backbone-tutorial-1/。 Github项目也在那里提供。