Tôi đang cố gắng viết một hàm sẽ cung cấp cho tôi một mẫu sổ tay được biên dịch (tôi có tất cả các mẫu trong các tệp riêng biệt) bằng cách sử dụng cuộc gọi ajax để lấy mẫu và biên dịch nó để sử dụng, nhưng tôi cần để sử dụng lời hứa để tôi có thể sử dụng nó.tải handlebars mẫu không đồng bộ
function getTemplate(name){
$.get('/'+name+'.hbs').success(function(src){
var template = Handlebars.compile(src);
//can't return the template here.
});
}
Làm thế nào để làm điều này với lời hứa để tôi có thể làm điều gì đó như:
$("a").click(function(e){
getTemplate('form').done(function(template){
$("body").append(template({
name: "My Name"
})
);
});
});
Có thể liên quan: http://stackoverflow.com/questions/133310/how-can-i-get-jquery-to-perform-a-synchronous- thay vì-không-đồng bộ-ajax-re – ubik
@PedroFerreira 'async: false' bị phản đối và là một giải pháp khủng khiếp – charlietfl
@charlietfl Có, tôi đồng ý. Nhưng nó vẫn có thể thú vị như một lựa chọn, trong trường hợp cụ thể. – ubik