2011-09-06 119 views
4

我想弄清楚如何将jQuery模板存储在基本html(不使用字符串或ajax请求)的不同文件中。在单独的文件中存储jquery/js模板

例如,我的html页面上,我想这样做:

<script type ="text/x-jquery-tmpl" id="personTmpl" src="js/personApp.tmpl.html"></script> 
<div id="container"></div> 
<script type="text/javascript"> 
    var p = { name: 'joe' }; 
    $("#personTmpl").tmpl(p).appendTo("#container"); 
</script> 

凡#personTmpl将在personApp.tmpl.html文件(或别的地方)

定义最终目标是让我的模板与js代码(和html)分开。

我不喜欢字符串方法,因为它使编辑难度更大的模板。而且我也不想在加载时关闭ajax请求(请注意,模板文件最终将被汇总用于生产)。

想法?

+0

我也遇到了这个,但我不知道它是否有可能。在查看资源之后,似乎浏览器甚至没有请求该文件。我知道IE会成为一个问题;如果IE不识别类型属性,IE将不加载脚本标签。我最终只是使用ajax。 –

回答

0

我有一个类似的情况,我的解决方案是编写一个模板缓存对象,它负责在第一次请求时通过ajax加载模板,并从此之后存储在内存中。它对我的项目非常有效。如果您有兴趣,我可以发布我使用的代码。

0

我使用requirejs和他们的文本插件解决了这个问题。在开发过程中,使用XHR请求加载模板。部署时,我使用requirejs r.js文件进行了优化,然后将模板包含在主js文件中,保存了许多要加载的文件。

0

目前开发中正在开发一个API(HTML Imports)来完成此操作 - 概述为HTML5Rocks。但是,由于正在开发中,除了可以支持有限浏览器的应用程序以外,它可能是不合适的。

其他选项将通过Ajax和/或您的构建系统来调整您自己的某些东西。

相关问题