我有两个不同的HTML页面,用于提供骨干应用程序。到目前为止,我已将所有js模板放在每个相应的HTML文件中。
现在,我正在重构一下,想在文件之间共享一些骨干视图。加载无法找到js模板的视图时,整个应用程序都会出错。我知道合并这两个的正确方法是使用外部js模板,例如使用EJS,每个文件有1个模板,但是,我想只有一个嵌入了<script type='text/template'>
的大型HTML文件,在我的2个页面之间共享模板HTML文件。这可能吗?我尝试用AJAX获取外部js模板并将它们写到头部,但是主干视图仍然无法找到它们。
有没有其他人选择在其中包含许多javascript模板的文件?我还发现当我使用ejs时,我打开了无法管理的文件数量。非常感激任何的帮助。
答案 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();