【发布时间】:2017-02-01 16:37:04
【问题描述】:
我有一个元素数组,每个数组项都有一个删除链接,单击该链接我希望删除选定的数组项。我已经将对象推入数组并能够获取数据。
我正在使用的代码如下所述。
子组件-
@Component({
selector: 'child',
template: `
<div>
{{element.name}}
<span (click)="deleteElement()">Delete</span>
</div>
`
})
export class ChildComponent {
@Input()
element: any;
@Output()
elementDeleted: EventEmitter<any> = new EventEmitter();
deleteElement() {
this.elementDeleted.emit();
}
}
我的父组件-
@Component({
selector: 'child',
template: `
<div>
<child *ngFor="let element of elements; let i= index;" [element]="element" (elementDeleted)="onElementDeleted(element)">
</child>
</div>
`
})
export class ParentComponent {
constructor() {
this.elements = [
{ name: 'element1' },
{ name: 'element2' },
(...)
];
}
onElementDeleted(element) {
var index = this.elements.findIndex((elt) => (elt===element));
if (index != -1) {
this.elements.splice(index, 1);
}
}
现在,每次删除数组的最后一项而不是删除选定的项。例如。如果我单击第 0 个或第 1 个索引的删除链接,最后一个项目仍然被删除。我不确定我哪里出错了。
【问题讨论】:
标签: javascript angular typescript