icanhaz找不到模板

时间:2012-07-25 04:35:32

标签: javascript mustache icanhaz.js

为了使这个例子尽可能简单,假设我在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 个答案:

答案 0 :(得分: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);
    });
});

请记住,在AJAX请求完成之前,ich.foo()将无法使用。