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 行目に見られ、テンプレートを定義する前に script タグの 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 に答える