2017-03-07 70 views
2

我怎样才能得到一个ngFor的实际元素,这样我就可以在Component.ts如何获取ngFor数组的DOM元素?

示例使用它:

//.html 
<div *ngFor="let element of elements"> 
     <md-card>{{element}} 
      <button (click)="delete()">Delete</button> 
    </md-card> 
</div> 

//.ts 
    public delete() { 
     mydata.delete(this.element) //how to delete the actual element? 
    } 
+3

'<按钮(点击)=“删除(元素)”' –

+1

我建议你使用'公共删除给在@GünterZöchbauer建议一试(YourElementClass:元){ }' – bviale

+1

是的,那回答了我的问题:) – ALSTRA

回答

3

维持元件指数

你可以在循环中维护索引并传递给方法。

//.html 
<div *ngFor="let element of elements; let i = index;"> 
     <md-card>{{element}} 
      <button (click)="delete(i)">Delete</button> 
    </md-card> 
</div> 

//.ts 
    public delete(index:number) { 
     // if your elements is an array, you can use splice. 
    elements.splice(index, 1); 
    } 

传递完整的元素

如果你的数据结构有一个方法基于传递给它的元素上删除。数组没有使用对象的删除方法,您必须进行拼接。你可以只传递对象这样

//.html 
<div *ngFor="let element of elements"> 
     <md-card>{{element}} 
      <button (click)="delete(element)">Delete</button> 
    </md-card> 
</div> 

//.ts 
    public delete(element:ElementType) { 
     mydata.delete(element) //how to delete the actual element? 
    } 
+1

或者你可以将该元素传递给该方法:) – ALSTRA

+0

@ALSTRA我编辑了我的答案以反映该场景,但我不确定是否有方法从数据中删除,因为如果元素是一个数组,你不会让这个方法可用。 –