angular5 - Angular 5:如何从列表中动态绑定按钮上的事件
问题描述
<div id="home" class="tab-pane fade in" style="text-align:left;opacity: 1;" >
<button *ngFor="let tool of toolArray" class="m-btn btn btn-secondary" type="button" (click)="{{tool.ToolMethod}}()" placement="bottom"
ngbTooltip="{{tool.Tooltip}}">
<img src={{tool.ToolImgPath}} alt="" width="24" height="24"/>
</button>
</div>
可以说,我有一些由管理员管理的工具,如果用户登录,他可以使用这些工具进行编辑。
let toolArray = [
{ToolCategory: "analysis"
ToolId: 96
ToolImgPath: "images/zoom-selection.png"
ToolMethod: "zoomToClickedFeature"
ToolName: "an_zoomto_selected"
Tooltip: "Zoom To Selected Feature"}
]
如果我使用 ngFor 在 html 中添加它,它会出现类似错误
Got interpolation ({{}}) where expression was expected
解决方案
如果该方法是控制器的成员,您应该使用this
like: (click)="this[tool.ToolMethod]()"
。
这是一个工作示例:
https://stackblitz.com/edit/angular-q2l54d?file=src%2Fapp%2Fapp.component.html
推荐阅读
- angular - 具有默认值的依赖项的 Angular 服务 - 构建错误未知标识符 []
- django-registration - django-registration 3.0.1 activation_email_body
- python-3.x - 无法使用moviepy迭代视频中的图像
- python - 使用 selenium 和 scrapy 抓取不成功的网页
- php - 如何使用 Symfony 2.8.26 和教义 orm 更新 postgresql 中的多个模式
- javascript - Postgres/Sequelize - 有条件地在查询中附加子句
- image - 去除历史文档中的噪音和污点以进行 OCR 识别
- python - 将 '[hh]:mm:ss' 格式的字符串转换为日期时间
- android - 如何在一个查询室android中以多对多关系在Junction表中获得额外的列
- android - Firebase for Unity3d Windows 应用程序