使用ngFor时 - 从数组中删除项时嵌套布局上的所有指令都会抛出错误

时间:2017-11-02 07:37:27

标签: angular ngfor

我的模板遍历组并呈现一些嵌套元素,列出了e.t.c。:

<ul>
<li *ngFor="let group of groups">
...
    <ul class="list_devices">
        <li class="row list_devices_header" *ngIf="getNumberOfDevicesInGroup(group.id) > 0">
                                ...
        </li>
        <li class="row" *ngFor="let item of devices | matchesGroup:group.id">
                     ...
        </li>
    </ul>
</li>
</ul>

问题是,当我从数组中删除一个组时:

delete this.groups[index]

渲染的布局仍然存在并且抛出了错误:

DeviceListComponent.html:122 ERROR TypeError: Cannot read property 'id' of undefined

用于嵌套指令,它使用已删除的对象。

也许我做错了。 我想删除一个组并让所有嵌套元素都消失。 我怎么能以正确的方式做到这一点?

谢谢

1 个答案:

答案 0 :(得分:2)

而不是delete this.groups[index],您可以使用splice

试试这个this.groups.splice(index, 1)

对于差异,请检查此问题 Deleting array elements in JavaScript - delete vs splice