如果你看下面的功能,在第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