代码之家  ›  专栏  ›  技术社区  ›  Michael

icanhaz找不到模板

  •  1
  • Michael  · 技术社区  · 12 年前

    为了使这个例子尽可能简单,假设我在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({})抛出了一个错误。这里到底发生了什么?

    1 回复  |  直到 12 年前
        1
  •  1
  •   Andrew M    12 年前

    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请求完成之前将不可用。