如果你看下面的功能,在第11行的地方alert(template);
。它打印undefined
。如果我在里面的ajax成功回调,它打印没问题。由于模板是在函数的顶部定义的,不应该在整个函数中是全局的吗?有人可以帮助我吗?不确定变量未定义的原因。可能的范围问题?
function load_template(path, data, callback){
var template;
$.ajax({
url: path,
success: function(uncompiled_template){
template = Handlebars.compile(uncompiled_template);
}
});
alert(template);
if(callback){
callback(template, data);
}else{
return template(data);
}
}
好的。这就说得通了。我将如何去从load_template函数返回模板变量。建议吗? – Kylee 2012-02-18 00:00:31
@Kylee:如果您确实需要返回值,您可以改为同步AJAX调用(在设置中使用'async:false')。但是,它会冻结整个浏览器,等待响应。 – Guffa 2012-02-18 00:02:54
好的。不是加载和渲染模板的最佳解决方案。感谢您的后续答复。 – Kylee 2012-02-18 00:04:31