加载骨干模板的常见模式如下:
<script type='text/template' id='foo'>
my template
</script>
----
var whatever = $('#foo').html();
我想将脚本包含在外部文件中,如下所示:
<script type='text/template' id='foo' src='myTemplate.tpl'></script>
但html()
的{{1}}现在为空。
我看到浏览器拉下模板文件,但我不确定它是否在页面dom中。有没有一种简单的方法可以在javascript中引用脚本的内容,或者浏览器是否只是忽略它并抛出结果?
答案 0 :(得分:2)
我认为要实际执行外部加载的脚本,你必须对内容进行eval()。您没有将它添加到DOM中,因为它是脚本,您将它添加到JS运行时。可能还有其他方法可以做到这一点,但eval()通常被认为是一个安全漏洞,因为可以评估恶意代码。
我倾向于在服务器上生成模板部分,所以当DOM准备就绪时,我知道我的所有JS都在那里。
答案 1 :(得分:1)
如果该点在加载脚本后执行操作,则可以在脚本标记上添加onload
属性。如果要在运行时下载内容,则可以使用异步下载策略(如Gats指出)。
在外部文件中使用jquery模板模板时,请记住一些重要的事项,有一个有关外部文件的jquery模板的有趣article,你必须检查它。