2012-02-21 6 views
0

インデックスページがロードされると、テンプレートをロードします。私のインデックスページが含まれていますiCanHaz.jsは、ページがロードされたときにテンプレートをロードしません。

<script src="site/introduction.html" type="text/html"></script> 
<script src="js/lib/jquery-1.6.1.js" type="text/javascript"></script> 
<script src="js/lib/ICanHaz.js" type="text/javascript"></script> 
<script src="js/app/main2.js" type="text/javascript"></script>  

とmain2.jsが含まれています

$(function() { 
    var introduction_html = ich.introduction(); 
    $('#pm').html(introduction_html.filter('#introduction')); 
}); 

導入テンプレートが見つかりません!それを呼び出す前にich.grabTemplates()を使用しても、動作しません。

どうすればこの問題を解決できますか?

introduction.htmlは含まれています

<html> 
<head> 
<style type="text/css"> 
P.submit {text-align: left} 
</style> 
</head> 

<body> 

<div id="introduction"> 

<p>The tool can now guide you, step by step, through this procedure, beginning when you click on the "start" button below.</p> 

<form action=""> 
<p class="submit"><input type="submit" value="Start" /></p> 
</form> 

</div> 

</body> 
</html> 
+0

がロードされているテンプレートを読み込むためにich.refresh()を行い任意のコンソール出力はありますか? –

+3

@ThomasClayson、あなたは**私はHAコンセント出力を意味しますか?** – Jakub

+0

エラーが発生します オブジェクト#にはメソッド 'introduction'がありません – z1naOK9nu8iY5A

答えて

0

問題は、リモートテンプレートが非同期ICanHazでグラブしていることであり、彼らは私がページをレンダリングするためにそれらを使用したい時には利用できません。

私は2つの異なる解決策が見つかりました:

1)は、スクリプトタグをページに直接テンプレートを定義します。これは私の好みに少し醜いです。

2)ICanHazコールを同期させます。テンプレートが少ない場合、これは妥当なトレードオフです。これは、トリックを行います

 $.ajax({async: false, url: script.prop('src'), dataType: 'text', 

 $.ajax({url: script.prop('src'), dataType: 'text', 

:私はからのコードのこの部分を変更しました。