Knockout.js 我有两个带有剔除绑定的选择列表,但是当我更改视图模型的值时,选择列表不会正确更新

Knockout.js 我有两个带有剔除绑定的选择列表,但是当我更改视图模型的值时,选择列表不会正确更新,knockout.js,Knockout.js,我有两个选择列表。我使用ko.utils.arrayFilter方法来更改我的选择列表。 当我使用它来添加字段或删除字段时,一切都很好 但是,当我更改viewmodel时,单击“添加”字段或“删除”字段,选择列表将无法正确更新 self.test = function(){ var idx = self.rightSeleted(); var selectedField = $.grep(self.availableFields

我有两个选择列表。我使用ko.utils.arrayFilter方法来更改我的选择列表。 当我使用它来添加字段或删除字段时,一切都很好

但是,当我更改viewmodel时,单击“添加”字段或“删除”字段,选择列表将无法正确更新

        self.test = function(){

            var idx =  self.rightSeleted();
            var selectedField = $.grep(self.availableFields(), function(n, i){
                return n.FieldNameId == idx;
            });
            debugger;
            var currentValue = selectedField[0].IsAsc();


        };
我的示例代码在这里

绑定选择列表时我做错了什么吗

谢谢~

我已经更新了你的,而且似乎很有效。我将您的方法更改为从数组中选择,以使用敲除方法,并删除了您的测试方法,因为在右侧下拉列表中没有选择任何内容时,会调用该方法,因此会发生爆炸

var selectedField = ko.utils.arrayFirst(self.availableFields(), function(item){
                return item.FieldNameId == idx;
            });
我已经更新了你的,它似乎起作用了。我将您的方法更改为从数组中选择,以使用敲除方法,并删除了您的测试方法,因为在右侧下拉列表中没有选择任何内容时,会调用该方法,因此会发生爆炸

var selectedField = ko.utils.arrayFirst(self.availableFields(), function(item){
                return item.FieldNameId == idx;
            });