【问题标题】:Loading templates with backbone js使用主干 js 加载模板
【发布时间】:2013-01-02 07:16:18
【问题描述】:

我开始从事 javascript 开发,并使用 node.js 作为 rest API 和使用主干的客户端做了一个简单的项目,一切看起来都很完美,直到我想从我的 js 中获取我的模板。

我找到了不同的方法,其中一些需要一段时间(比如一岁),但我不明白哪一种会更好:

  • 带有 html 代码的 var 的 .js 文件

    pros -> 易于加载,易于传递给下划线进行编译。

    cons -> 换行每一行。

    app.templates.view = " \
    <h3>something code</h3> \
    ";
    

    加载模板:

    template: _.template(app.templates.view)
    

External template in Underscore

  • 使用 require.js 加载文本插件。

    专业人士 -> 根据需要加载不同的模板。

    缺点 -> 我不喜欢将所有内容都放在“加载器”函数中的方法...

    define(["TemplateEngine", "text!templates/template.html"], function(...
    

RequireJS: Loading modules including templates and CSS

  • 使用 AJAX 请求加载模板的函数。

    pros -> 您可以加载您需要的模板并添加本地存储可能性。

    cons -> 看来我必须将所有模板合并到一个文件中以用于生产环境。

    function() {
    
    var templateLoader = {... $.get calls ...}   
    

Best way to asynchronously load underscore templates

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

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

似乎 require 是最好的方法,但也许我遗漏了一些东西,我确实不想让事情尽可能干净,因为我正处于学习/玩乐阶段:D

任何具有良好结构的好文章或 github 项目或对此有任何启示都将受到赞赏。

谢谢。

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

--编辑-- 发现了一些有趣的视频来了解如何使用 require.js 开始和包装东西 http://www.youtube.com/watch?v=VGlDR1QiV3A

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

【问题讨论】:

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


    【解决方案1】:

    我建议将 require.js 与文本插件一起使用。将 html 模板作为字符串混合在 javascript 变量中是个坏主意,以及使用类似 &lt;script type="text/template"&gt;&lt;/script&gt; 的东西。

    这是关于backbone.js 的一个非常好的系列,其中包括模板加载和项目构建:http://dailyjs.com/2012/11/29/backbone-tutorial-1/。那里也提供了 Github 项目。

    【讨论】:

    • 谢谢,我会看看,
    • 您使用 Backbone,它基本上是一个非常好的实用程序,可以为代码添加结构并在不同类型的对象之间分离不同的任务(数据处理/视图渲染)。将客户端模板保存为单独的文件也是添加结构的好方法(就像将 .js 文件保存在 /js 文件夹中,将样式表保存在 /css 文件夹中等一样)。保持服务器端模板(或静态 html 页面)干净且易于维护。试想一下,如果您在一页上需要 10 个不同的模板 - 将它们全部添加到脚本标签内的 html head 会导致您的代码非常混乱。
    【解决方案2】:

    Require 是您列出的选项中的一个不错的选择。

    有没有你没有简单考虑过的原因:

    1. 将模板存储在将模板用作&lt;script type='text/template'&gt; 节点的页面中?

    2. 将模板存储为文本(非 JS)文件并通过 XHR 将它们加载到使用它们的页面上?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多