Knockout.js 使用knockout从多维数组中删除项

Knockout.js 使用knockout从多维数组中删除项,knockout.js,Knockout.js,我有一个如下所示的多维数组 "ContactsList":[[{"id":73,"title":"IT Manager"},{"id":74,"title":"Manager"}], [{"id":75,"title":"Developer"},{"id":76,"title":"Salesperson"},{"id":77,"title":"Person"}]] 在上面的结构中,我想从第一个数组中删除{“id”:73,“title”:“IT Manager”}第一个对象,但是knockout

我有一个如下所示的多维数组

"ContactsList":[[{"id":73,"title":"IT Manager"},{"id":74,"title":"Manager"}],
[{"id":75,"title":"Developer"},{"id":76,"title":"Salesperson"},{"id":77,"title":"Person"}]]

在上面的结构中,我想从第一个数组中删除
{“id”:73,“title”:“IT Manager”}
第一个对象,但是knockout不允许我这样做。

在没有看到完整代码的情况下,我猜,但我想我理解这个问题

一个可观察的数组只观察数组中的元素。它不会观察元素的内容,除非您特别使其可见

例如,您可以更改任何对象上的
id
title
值,并且不会触发更新。击倒被告知只观察阵列项目

您还需要将每个嵌套数组映射到一个可观察数组。这样做意味着删除嵌套数组中的项将触发knockout的绑定。以下是一些示例代码:

var联系人列表=[
[{
“id”:73,
“职务”:“IT经理”
}, {
“id”:74,
“职务”:“经理”
}],
[{
“id”:75,
“标题”:“开发商”
}, {
“id”:76,
“职务”:“销售人员”
}, {
“id”:77,
“头衔”:“人”
}]
];
var viewModel=函数(数据){
var self=这个;
//将嵌套数组转换为可观察数组
var tmp=ko.utils.arrayMap(数据、函数(项){
返回ko.可观察日(项目);
});
//主阵列
自身数据=可观测的可观测日(tmp);
自误差=可观察的高(“”);
self.RemoveFirst=函数(){
//get first元素-应该是observableArray
var first=self.Data()[0];
//检查它是否为空
如果(第一){
console.log(第一种类型);
log(“项:+ko.toJSON(第一));
//获取第一个子元素
var subelement=first()[0];
if(子元素){
首先,删除(子元素);
//首先,删除(子元素);
self.Error(“删除”+ko.toJSON(子元素));
//可能需要检查空数组并在此处删除“first”
}
}否则{
自身错误(“无项目”);
}
}
};
var vm=新视图模型(contactsList);
ko.应用绑定(vm)

项目


先走
你能澄清一下“淘汰赛不允许我”是什么意思吗?请显示不起作用的代码,并解释您遇到的错误。嗨,Patrick,非常感谢,这对我来说是一个很好的帮助,再次感谢Patrick,几天来我遇到了一个问题,没有找到任何运气,对此我非常担心,我已经提出了一个问题,所以,请看一看,这将非常感谢您