angular - 如何获取 ngFor 数组的 DOM 元素?

标签 angular ngfor

如何获取 ngFor 的实际元素,以便我可以在 Component.ts 中使用它

示例:

//.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?
    }

最佳答案

维护元素索引

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

//.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?
    }

关于angular - 如何获取 ngFor 数组的 DOM 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42651545/

相关文章:

angular - 在 Angular 应用程序之间共享代码

regex - Angular 2 react 形式验证带有两位小数的数字的模式

html - 使用 ngfor 将点击事件添加到迭代列表

html - 如何访问 *ngFor 中的 'index' 并对其进行编辑(无法删除列表中的多个项目)

Angular 在模板中创建一个递归循环来呈现评论树

javascript - 你能阻止 Angular 组件的主机点击被触发吗?

angular - 错误 TS1192 : Module @types/lodash/index has no default export

Angular2 错误 : Cannot match any routes. URL 段:

forms - 带有 ngFor 输入的 Angular 2 模板驱动表单

angular - 如何使用 *ngFor 迭代对象键?