我創建了一個Ember幫助程序,允許從服務器上的URL加載動態生成的部分視圖。它看起來像這樣:在Ember中異步加載部分視圖
Ember.Handlebars.helper('serverPartial', function(url, options) {
var template;
$.ajax(url, {
async: false,
success: function(templateText){
template = Ember.Handlebars.compile(templateText);
}
});
template(this, options);
});
而且它是從這樣的家長把手模板稱爲:
{{serverPartial templateUrl}}
正如你所看到的,Ajax調用來檢索服務器的模板是同步調用,因爲我找不到任何其他方式來按照Ember框架的預期返回模板內容。不幸的是,這個同步調用阻止了整個父模板的渲染。
有沒有辦法爲模板返回一個承諾,或者有任何其他方式來允許部分視圖異步或獨立加載?
爲什麼你需要做一個同步ajax調用? – Hrishi
我想呈現服務器上的一些模板,因爲我的Web應用程序使用服務器端MVC框架呈現的重要部分,我還沒有準備好重寫所有這些。 – jdmcnair