Durandal页面强制淘汰组件在绑定之前等待Ajax呼叫
问题描述:
我想通过ajax调用提供的值将自定义淘汰组件的参数绑定到viewmodel中。但是,看起来绑定发生在ajax调用完成之前。无论如何要确保ajax调用在绑定发生之前完成?谢谢。Durandal页面强制淘汰组件在绑定之前等待Ajax呼叫
与自定义组件的看法是这样的
<section>
<mycustomcomponent params="item: item"> </mycustomcomponent>
</section>
这里有
define(function (require) {
var Item = require('models/item');
var item;
return {
activate: function() {
var ajaxCall = $.ajax({
method: 'get',
url: 'myapicall',
success: function (data) {
item = new Item(data);
}
});
return ajaxCall;
},
item: item,
};
});
答
你可以尝试包装的成分在if
结合,这样没有关系的视图模型的相关部分直到item
包含有效的东西为止。
<section data-bind="if: item">
<mycustomcomponent params="item: item"> </mycustomcomponent>
</section>
尝试'var ajaxCall = return $ .ajax .....',这应该防止调用'attach'处理程序来同步调用... – gkb