Javascript 淘汰不同步手动设置的选项';s选定属性

Javascript 淘汰不同步手动设置的选项';s选定属性,javascript,knockout.js,Javascript,Knockout.js,我将这个jQuery插件用于一个多选列表框,它使用knockoutjs绑定到一个视图模型 当选择或取消选择某个项目时,插件将设置选项的选定属性。但knockout显然没有检查该属性中的更改,因此我的视图模型没有被更新 现在,在我更改插件并编写自定义绑定之前,有没有方法告诉knockoutjs监视所选属性?您可以将knockout设置为处理单击事件,这将是最简单的方法。 比如说 要选择,请在右侧添加或您认为最好的内容 data-bind="click: function(){ select(cou

我将这个jQuery插件用于一个多选列表框,它使用knockoutjs绑定到一个视图模型

当选择或取消选择某个项目时,插件将设置选项的选定属性。但knockout显然没有检查该属性中的更改,因此我的视图模型没有被更新


现在,在我更改插件并编写自定义绑定之前,有没有方法告诉knockoutjs监视所选属性?

您可以将knockout设置为处理单击事件,这将是最简单的方法。 比如说

要选择,请在右侧添加
  • 或您认为最好的内容

    data-bind="click: function(){ select(country); }"
    
    data-bind="click: function(){ deselect(country); }"
    
    要取消选择,请在左侧添加
  • 或您认为最好的内容

    data-bind="click: function(){ select(country); }"
    
    data-bind="click: function(){ deselect(country); }"
    
    然后,您还需要处理程序在可观察的阵列之间添加/删除/移动

    viewModel = {
      select: function(){ /* add to observableArray */ },
      deselect: function(){ /* remove from observableArray */ }
    };
    

    这就是我最后所做的。