使用一个大的外部文件与backbone.js的许多JavaScript模板?

时间:2011-12-21 18:04:16

标签: backbone.js ejs

我有两个不同的HTML页面,用于提供骨干应用程序。到目前为止,我已将所有js模板放在每个相应的HTML文件中。

现在,我正在重构一下,想在文件之间共享一些骨干视图。加载无法找到js模板的视图时,整个应用程序都会出错。我知道合并这两个的正确方法是使用外部js模板,例如使用EJS,每个文件有1个模板,但是,我想只有一个嵌入了<script type='text/template'>的大型HTML文件,在我的2个页面之间共享模板HTML文件。这可能吗?我尝试用AJAX获取外部js模板并将它们写到头部,但是主干视图仍然无法找到它们。

有没有其他人选择在其中包含许多javascript模板的文件?我还发现当我使用ejs时,我打开了无法管理的文件数量。非常感激任何的帮助。

3 个答案:

答案 0 :(得分:2)

我使用额外的javascript / coffeescript文件并使用underscore's templating来处理所有事情。这样,您可以包含模板,并将它们放入尽可能少的(或许多)文件中。

答案 1 :(得分:1)

我正在为我当前项目中的所有模板使用单个文件,而且效果非常好。

这是一个Asp.Net站点,因此我将模板文件制作成用户控件,以便我可以轻松地将其包含在使用Backbone的任何页面中。

答案 2 :(得分:0)

如果您通过AJAX获取所有模板,也许您不必将它们写到头部。

您可以将模板作为JSON对象发送到客户端,例如:

{"about":"<p>About</p>...","gallery":"<p>Gallery</p>...","contact":"<p>Contact</p>..."}

获取镜像后,您可以将它们作为模板变量存储在某个对象(或区域存储)中,之后您可以执行以下操作:

var tempStr = templates['about'],
    template = new EJS({element:{value: tempStr, id: 'about'}}),
    content = template.render();