我想寫一個函數,它會給我一個編譯句柄模板(我有我的所有模板在單獨的文件中)使用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