iCanHaz.js在加载页面时没有加载模板

时间:2012-02-21 15:17:22

标签: jquery 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>

2 个答案:

答案 0 :(得分:0)

问题是ICanHaz异步抓取远程模板,当我想用​​它们渲染页面时它们不可用。

我找到了两种不同的解决方案:

1)使用脚本标记直接在页面中定义模板。根据我的口味,这有点难看。

2)使ICanHaz呼叫同步。如果您的模板很少,这是一个合理的权衡。我改变了这段代码:

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

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

这就是诀窍。

答案 1 :(得分:0)

执行ich.refresh()加载使用ajax

加载的模板