我想通过特定字段值删除ko可观察数组元素。我尝试了一种解决方案。但是,缺少一些东西。它不起作用。
substring= re.search(r"(?<=runid_).*?(?=_*.fastq)", text).group(0)
customOptionVal是ko observableArray,其输出是:
customOptionVal : ko.observableArray([])
现在,我想这样,如果 sub_id = options_3_2 ,那么它将在 sub_id 的基础上从颜色元素中删除。>
我尝试了以下解决方案。但是,它不起作用:
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}
答案 0 :(得分:0)
以下摘录从customOptionVal observableArray
本身中删除-
self.customOptionVal.remove(function(option) {
return ko.utils.arrayFilter(option.Color, function(color) {
return color.sub_id === subId;
});
});
但是,如果您只想从Color
数组(不是observableArray
)中删除,请使用以下代码段-
self.customOptionVal().forEach(function(option) {
var index = option["Color"].findIndex(function(y) {
return y.sub_id === subId;
});
if (index > -1) {
option["Color"].splice(index, 1);
}
});
答案 1 :(得分:0)
我发现了更好的方法:
如屏幕截图所示,创建一个ko可观察数组,并在该 ko.observableArray
中设置 Color 值custom_option_select_text_arr = ko.observableArray([])
.....
this.custom_option_select_text_arr.push({sub_color: "Red", sub_id: "options_3_2", is_checked: true});
this.customOptionVal()['Color'] = this.custom_option_select_text_arr();
现在,删除元素:
self.custom_option_select_text_arr.remove(self.custom_option_select_text_arr()[0]);
self.customOptionVal()['Color'] = this.custom_option_select_text_arr();