【发布时间】:2011-11-17 15:14:12
【问题描述】:
请考虑以下 ViewModel sn-p:
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, given1, given2));
似乎我通过$.get 的ajax 调用太慢或者ko.applyBindings() 太快了。无论哪种方式,似乎只有在我取消注释 alert('here'); 行时,淘汰赛才能正确绑定。
如果我留下评论,则不会填充任何控件。
各位,有什么想法吗?
我能想到的唯一解决方法是将.applyBindings 作为$.get 中函数回调的一部分,如下所示:
$.get("testSynUfGet.aspx", null, function (data) {
ko.applyBindings(new viewModel(data.id, data.given1, data.given2));
}, 'json');
【问题讨论】:
-
两个答案都有效,具体取决于您要达到的目标。
-
只是想重温一下,相信我的第一个思路还是在同步编程的领域。正确的是第二个 - 使绑定成为异步过程的一部分。
标签: jquery ajax knockout.js