【发布时间】:2019-01-23 19:56:40
【问题描述】:
我想通过特定的字段值删除 ko observable 数组元素。我尝试了一种解决方案。但是,有些东西不见了。它不工作。
customOptionVal : ko.observableArray([])
customOptionVal 是 ko observableArray,其输出是:
Color: [0: {sub_color: "Red", sub_id: "options_3_2", is_checked: true}
1: {sub_color: "Green + $250.00", sub_id: "options_3_3", is_checked: true}]
Size: {sub_size: "L", sub_id: "options_2_2", is_checked: true}
现在,我想要这样,如果 sub_id = options_3_2 那么,它将从 sub_id 基础上的 Color 元素 中删除。 p>
我尝试了以下解决方案。但是,它不起作用:
$.each(self.customOptionVal()['Color'], function( key, val ) {
if(self.customOptionVal()['Color'][key].sub_id == 'options_3_2') {
self.customOptionVal.remove(self.customOptionVal()['Color'][key]);
}
});
【问题讨论】:
-
您要完全删除 Color 元素还是具有该颜色元素的 Option?我问这个是因为您要从可观察数组中删除
self.customOptionVal -
这对我不起作用。
-
如果
customOptionVal是observableArray,您如何访问self.customOptionVal()['Color']?我假设您正在使用键Color和Size将对象设置为ko.observableArray()。应该改为ko.observable()
标签: javascript jquery knockout.js