我想写一个函数,它会给我一个编译句柄模板(我有我的所有模板在单独的文件中)使用ajax调用来获取模板并编译它的使用,但我需要使用承诺,以便我可以真正使用它。异步加载句柄模板
function getTemplate(name){
$.get('/'+name+'.hbs').success(function(src){
var template = Handlebars.compile(src);
//can't return the template here.
});
}
如何做到这一点与承诺,所以我可以做这样的事情:
$("a").click(function(e){
getTemplate('form').done(function(template){
$("body").append(template({
name: "My Name"
})
);
});
});
可能相关:http://stackoverflow.com/questions/133310/how-can-i-get-jquery-to-perform-a-synchronous-而不是异步-ajax -re – ubik 2013-04-20 10:56:41
@PedroFerreira'async:false'已被弃用,是一个可怕的解决方案 – charlietfl 2013-04-20 11:01:29
@charlietfl是的,我同意。但在特定情况下,作为一种选择,它可能仍然很有趣。 – ubik 2013-04-20 11:04:40