请考虑以下viewmodel代码段:
var id,given1,given2;
$.get("testSynUfget.aspx",null,function (data) {
id = data.id;
given1 = data.given1;
given2 = data.given2;
},'json');
//alert('here');
ko.applyBindings(new viewmodel(id,given2));
似乎我通过$.get调用ajax太慢或者ko.applyBindings()太快了.无论哪种方式,如果我取消注释线警报(‘here’),似乎敲门只能正确绑定.
如果我留下评论,则不会填充任何控件.
任何想法,伙计们?
我能想到的唯一工作是将.applyBindings作为$.get中函数回调的一部分,如下所示:
$.get("testSynUfget.aspx",function (data) {
ko.applyBindings(new viewmodel(data.id,data.given1,data.given2));
},'json');
解决方法
您的解决方法是正确的做事方式.这是您的’sucess’处理程序,在返回数据时调用该处理程序,这是正确的点,然后填充视图模型并应用绑定.