看起来好像不可能延迟模板的加载,直到响应从Ember视图的willInsertElement属性中的AJAX请求返回为止?延迟加载Ember视图模板直至完成AJAX请求
我想在模板呈现之前加载jquery-ui.min.js。
window.App = Ember.Application.create()
App.TestView = Ember.View.create
tagName: 'div'
template: Ember.Handlebars.compile '<div>This is a view</div>'
willInsertElement: ->
$.ajax({
url: "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"
dataType: "script"
async: false
success: (data, textStatus, jqxhr) ->
console.log data
console.log textStatus
console.log jqxhr.status
console.log "Load was performed."
});
didInsertElement: ->
console.log 'the element was inserted'
App.TestView.append()
我发现didInsertElement在AJAX请求完成之前运行。
谢谢先进。
我改变了这个问题,使用$ .ajax作为$ .getScript只是一个更高级别的抽象。我只是尝试设置aync:false并且不起作用。但我相信你是正确的,我可能需要在成功回调中追加视图。 – Rocky 2012-03-21 16:43:19