3

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

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

还有其他人选择在其中包含许多 javascript 模板的文件吗?我还发现当我使用 ejs 时打开的文件数量难以控制。非常感激任何的帮助。

4

3 回答 3

2

我使用了一个额外的 javascript/coffeescript 文件并使用下划线的模板来处理所有事情。通过这种方式,您可以包含模板并将它们放入尽可能少(或多)个文件中。

于 2011-12-21T20:09:57.767 回答
1

我正在为当前项目中的所有模板使用一个文件,并且效果很好。

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

于 2011-12-21T18:59:17.567 回答
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();
于 2012-11-06T19:09:13.890 回答