使用主干js加载模板

时间:2012-12-31 04:45:19

标签: javascript ajax backbone.js requirejs underscore.js

我从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

  • 还有一个用于模板加载的Jquery插件,我真的很喜欢,但似乎它没有发布?

http://api.jquery.com/jQuery.template/

似乎需要是最好的方法,但也许我错过了一些东西,我不想让事情尽可能干净,因为我正处于学习/娱乐阶段:D

任何有良好结构或任何亮点的好文章或github项目都将受到赞赏。

感谢。

原谅任何重大的拼写错误,而不是说英语的人:)

- EDIT-- 发现了一些有趣的视频,以了解如何使用require.js启动和包装 http://www.youtube.com/watch?v=VGlDR1QiV3A

http://www.youtube.com/watch?v=M-wjQjsryMY

2 个答案:

答案 0 :(得分:2)

要求是您列出的选项的好选择。

有没有理由你没有考虑过:

  1. 将模板存储在使用<script type='text/template'>个节点的页面中?

  2. 将模板存储为文本(非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项目也在那里提供。