我正在根据 AJAX
请求提供我的选项,而值最初在选择中。然而,Knockout
似乎删除了绑定(bind)选项中没有的值。
Knockout
似乎使用 selectExtensions
(v3 的第 1699 行)来读取和写入所选选项。在此新值与索引匹配,并通过再次获取索引并与数据匹配返回。
如何避免数据丢失?
最佳答案
通常,我通过使用当前值预填充 observableArray 来处理这个问题(不需要文本,因为您可能还不知道)。
喜欢:
var viewModel = {
val: ko.observable(1),
opts: ko.observableArray([{ Id: 1 }])
};
然后,让 observableArray 在返回时填充实际值。
对于更通用的解决方案,您可以使用本答案第二部分中所述的自定义绑定(bind):Knockout js: Lazy load options for select
这会为您预填充 observableArray,并考虑到您可能设置或未设置 optionsValue
。
关于javascript - KnockoutJS 在值后加载选项时丢失以前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20125788/