node.js - 如何最好地组织 Underscore.js 模板以与 Backbone.js 一起使用?

标签 node.js backbone.js express underscore.js pug

目前我有 main.jade 文件,它是在 Node.js 上使用 Express.js 提供的。在 Jade 文件的头部,我有我所有的模板。正如您可能理解的那样,这种情况很快就变得不守规矩。我使用以下方法从 Backbone.js 加载模板:

template:_.template($("#phone-tmplt-taskRow").html())

我的应用程序将具有三个版本:移动设备、平板电脑和桌面设备。我想知道组织模板的最佳方式应该是什么。我不想在 html 文件的头部列出大约 30 个模板。我应该如何组织我的模板?我希望以某种方式拥有 3 个文件,每个版本一个。我不想根据版本提供与 node.js/express.js 不同的 URL。

最佳答案

您可以将模板单独放在文件(例如phone-tpl.html)中,并将它们全部放在/templates 目录中。然后您可以通过 AJAX 加载它们中的每一个,在这种情况下,我建议您有一个缓存(在内存或本地存储中)以最小化请求数量。

另一个选择是使用 RequireJS。 Addy Osmani 提议使用文字!加载模板的插件。 Alex Sexton 提出了一个更复杂的选项,您不将模板作为文本加载,而是预编译为 Javascript 函数(当使用 r.js 优化时,所有模板都会捆绑在一起,因此在生产中所有模板都是函数,您不会向服务器请求它们)。

链接:

关于node.js - 如何最好地组织 Underscore.js 模板以与 Backbone.js 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11463886/

相关文章:

multithreading - node.js 是否在内部使用线程/线程池?

javascript - Backbone 组件的可重用性

javascript - MySQL 和 View 的日期/时间格式化的正确方法,反之亦然

javascript - 我应该如何在 axios GET 请求中发送 JWT token ?

node.js - 有没有办法在node.js加密模块上获取用于ECDH的基点(P)?

javascript - Sails js,如何将后台事件发送到手机

javascript - Express 路由器 : Router. use() 需要一个中间件函数但得到一个对象

node.js - 如何在express js中授予用户特定的文件访问权限

node.js - 如何在aws ec2(linux实例)上部署Next js

javascript - Backbone.Router路由改变事件触发两次