当试图通过敲除绑定取消选择当前选定的项目时,它似乎被重置回重置之前的状态:
这是示例:
从下拉列表中选择 jQuery 并单击“清除”以查看此行为。
以下是数据绑定的完成方式:
data-bind="value: selected, chosen: {}">
关于如何让这个真正重置的任何想法?
当试图通过敲除绑定取消选择当前选定的项目时,它似乎被重置回重置之前的状态:
这是示例:
从下拉列表中选择 jQuery 并单击“清除”以查看此行为。
以下是数据绑定的完成方式:
data-bind="value: selected, chosen: {}">
关于如何让这个真正重置的任何想法?
您看到这种情况的原因是控件的工作方式。当您单击清除时,您将 observable 设置为 null。然后插件会尝试查找值为 null 的选项。因为它没有找到它,所以它将您的选择重置为上次选择的内容。
在您的 jsfiddle 中,如果您更改此行:
myViewModel.selected(null);
到这一行:
myViewModel.selected("");
那么您的示例将起作用。原因是您可以选择值为空字符串。
此外,如果您希望您的插件在 UI 上更新,您还需要使用它:
$(".chosen").trigger("chosen:updated");