angular - 在来自数组的按钮的 ngFor 循环中生成不同的(单击)属性
问题描述
我有一个 JSON 文件,我从中获取配置以在工具栏中生成一组按钮。
在每条记录中,我存储有关每个按钮的信息,以及类、图标……我还想在每个按钮中设置将通过事件触发的方法(click)
如何使用其单击事件生成视图中的每个按钮?
它是一个角度组件,根据从该JSON
文件接收到的信息生成工具栏
我需要类似的东西:
HTML
<mat-button-toggle-group>
<mat-button-toggle *ngFor="let tool of tools">
<button [click]="tool.click"><i [class]="tool.class"></i></button>
</mat-button-toggle>
</mat-button-toggle-group>
数组(JSON 文件)
tools =
[
{ id: 0, class: 'fas fa-sign-out-alt', click: 'addPizza()'},
{ id: 1, class: 'fas fa-arrow-left', click: 'removePizza()' },
{ id: 2, class: 'far fa-sticky-note', click: 'updateGrid()' }
];
预期:生成一组按钮,每个按钮内都有特定的方法
解决方案
进行两项更改,在模板中替换[click]="tool.click"
为(click)="tool.click()"
和在 TS 中,使click
属性成为函数
试试这样:
TS:
tools =
[
{ id: 0, class: 'fas fa-sign-out-alt', click: () => this.addPizza()},
{ id: 1, class: 'fas fa-arrow-left', click: () => this.removePizza() },
{ id: 2, class: 'far fa-sticky-note',click: () => this.updateGrid() }
];
模板:
<button (click)="tool.click()"><i [class]="tool.class"></i></button>
推荐阅读
- java - Spark:从写入的文件读取时时间戳发生变化
- css - 在 Express 静态中使用 .htaccess 将 css/js 文件重定向到 dir 路径
- php - Laravel 5.8 在验证规则中使用数组
- servicestack - Citrix Netscaler 阻止 ServiceStack 服务器事件
- ibm-mobilefirst - Maximo Anywhere 7.6.3 安装
- javascript - 触发onclick时如何从Javascript中的元素检索信息
- php - 搜索显示 HTML 标记的记录
- c++ - 使用 QSqlQueryModel 进行 QT 分页
- elasticsearch - Elastic APM 能否测量除 Web 应用程序以外的应用程序的性能?
- java - 从 Hazlcast 缓存中获取对象是不可变的