javascript - 如何在 Angular 中为按钮单击事件使用输入元素的 id
问题描述
我有一个模板
<input class="ng-hide" id="{{f}}" multiple type="file" style="display:none;"
(change)="getFiles($event)" />
<button mat-raised-button type="button" class="mat-raised" color="primary"
onclick="document.getElementById('{{f}}').click()">{{f}}</button>
这里 f 是一个具有动态值的字符串变量,并且想要传递相同的onclick
函数,但我收到错误
error NG8002: Can't bind to 'onclick' since it isn't a known property of 'button'.
4 onclick="document.getElementById('{{f}}').click()">{{f}}</button>
如何解决这个问题。我正在使用Angular 9
.
解决方案
而不是document.getElementById()
你可以使用 Angular模板引用变量。除了提供更多功能之外,它还是 Angulary 的做事方式。同样在 Angular 中,您需要绑定到(click)
事件而不是onclick
事件。尝试以下
<input #inputFile class="ng-hide" multiple type="file" style="display:none;"
(change)="getFiles($event)" />
<button mat-raised-button type="button" class="mat-raised" color="primary"
(click)="inputFile.click()">{{f}}</button>
这inputFile
是模板引用变量。
推荐阅读
- javascript - NgTagInput- 添加第一个标签后不能立即选择第二个标签吗?
- deep-learning - MXNet AdamW 优化器
- android - Flutter - setState 不更新小部件?
- arrays - IFS Bash 数组 - 逗号分隔
- c - 为什么在堆溢出后调用 free() 会导致崩溃 - 确切原因是什么?
- python - 如何在 django 自定义用户模型中使用多对多关系?
- mysql - 要验证的复杂 Sql 查询
- android - 如何从活动 B 导航到活动 A 的特定片段?
- git - Heroku - 从 GitHub 但不是从 Heroku CLI 部署的相同代码/存储库(buildpack 识别问题)
- c - 如何在 yocto-cmake 中为标准库指定静态链接?