如何删除嵌套对象的项目 // 错误类型错误: "_v.context.$implicit is undefined"



我有一个对象列表,用ngFor和ngSwitchCase显示。向对象添加项目以及删除对象本身都没有问题。 但是,如果我尝试删除嵌套在对象中的项目,则会出现此错误:

错误

类型错误:"_v.context.$implicit 未定义">

对象消失了,因为信息没有显示,但是div的又名设计/渲染与ngFor搞砸了。(我正在使用Angular8。

这是我问题的精简版本: https://stackblitz.com/edit/angular-jjsvzh

在 Stackblitz 示例中,我遇到了另一个错误,尝试相同的操作:

错误

类型错误:"this.articles[0].content[boxId] 未定义">

我只是不明白为什么当我删除对象时,"删除"工作得很好,但其他时候它没有。

closeContentBox(boxId) {
console.log('I close contentBoxes');
delete this.articles[0].content[boxId];
}
removeItemBox(boxId, itemId) {
console.log('I remove itemBoxes');
delete this.articles[0].content[boxId].data.items[itemId];  
}

也许相关,但没有帮助: 隐式上下文未定义,角度 7

试试这个:

removeItemBox(boxId, itemId) {
// delete this.articles[0].content[boxId].data.texts[itemId];  
this.articles[0].content[boxId].data.texts.splice(itemId, 1);}  

同样在 HTML 中,对第一个参数进行更改,如下所示:

<div class="removeButton" (click)="removeItemBox(boxId, itemId)

最新更新