1

为了使这个示例尽可能简单,假设我在 home.html 中有以下代码:

<html>
    <head>
        <!-- ALL DEPENDENCIES FOR ICANHAZ ARE INCLUDED ABOVE -->

        <script type="text/html" id="foo" src="js_template.js"></script>
        <script>ich.foo({})</script>
    </head>
    <body></body>
</html>

在 javascript_template.js 中,我有以下内容:

Hello world!

事实证明,icanhaz 没有检测到 foo,所以 ich.foo({}) 抛出了一个错误。这里到底发生了什么?

4

1 回答 1

1

ICanHaz.js 不会自动下载src. 这种行为可以在 ICH.js 源代码的第 510 行看到,其中它在定义模板之前检查脚本标记的 innerHTML 属性。

您必须内联定义它,或者使用您自己的 AJAX 请求。例如,嵌入式:

<script type="text/html" id="foo">
     Hello, world
</script>

或者,如果您使用的是 jQuery,则可以使用 AJAX 加载脚本:

$(function(){
    $.get('js_template.js', function(res){
         ich.addTemplate('foo', res);
    });
});

请记住,ich.foo()在 AJAX 请求完成之前将不可用。

于 2012-07-25T04:49:24.407 回答