我正在学习backbone.js
我正在处理的Rails 3
应用程序。 Backbone使用underscore
,我相信它内置了自己的模板引擎。
我读过关于胡子的好东西,但是想知道我是否应该考虑使用它而不是下划线的内置模板引擎?
你有什么想法?
由于
答案 0 :(得分:32)
我的第一个企业级骨干应用程序已经过了一半。我目前正在使用内置模板的下划线,因为当我开始学习的方式是使用下划线时...我不一定对它们有任何问题。所有的模板解决方案都非常简单。
我已经查看过其他一些解决方案,并考虑转换,但仅仅是因为我认为其他一些解决方案看起来更清晰。此外,一些解决方案还具有更多功能。
我喜欢胡子,因为它的语法较短。看起来更干净但是,如果我切换,我想我会选择Handlebars.js。
Handlebars具有相同的短语法,以及大量其他功能,例如自定义帮助程序方法和模板中的设置对象上下文。看看here。如果我在项目开始时就知道了把手,我肯定会跳过它。
我不会像其他人提到的那样增加另一个依赖关系。完成正确的骨干应用程序无论如何都会快速闪电。 :D
如果您有任何其他问题,请与我们联系。我一直非常喜欢骨干,所以我正试着看标记的帖子。不过实话说。把手看起来合法。
编辑:
我还想补充说,把手的文件看起来比下划线更合法......
答案 1 :(得分:18)
我能想到的最大的问题是,您正在添加另一个库来执行您的依赖项已经执行的操作。如果语法是您最关心的问题,则以下代码段将告诉下划线使用类似的语法。
_.templateSettings = {
evaluate : /\{\[([\s\S]+?)\]\}/g,
interpolate : /\{\{([\s\S]+?)\}\}/g
};
答案 2 :(得分:3)
问题是Rails,但没有标记;因此con与使用类似胡须的语法(如django的模板)的语言冲突。
如果django模板首先解析一个块,它将在编写JS之前尝试填充{{ }}
块。
我正在使用verbatim
django模板标记忽略{{}}
块来解决问题,但我现在希望我使用默认的<%=%>
语法,这样我就不必明确了转义django模板引擎中写的这些块。