我想在加载索引页面后加载模板。我的索引页面包含:
<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 :(得分: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