You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular9使用materialize-css modal时内部按钮无法识别ts方法问题

问题原因
  • 你使用了原生HTML的onclick属性绑定事件,该属性只会查询全局window作用域下的方法,而confirmModal是Angular组件类内部定义的实例方法,不在全局作用域中,所以触发未定义报错。
  • 额外存在模板引用变量不匹配的隐患:你在TS中@ViewChild查询的是名为modal的模板引用,但是HTML中给modal div定义的引用是#myModal,二者不匹配会导致modal实例化逻辑不稳定。
修复方案
  1. 修正模板引用变量名,保持TS查询名和HTML定义名一致
  2. 将原生onclick替换为Angular标准的事件绑定语法(click),Angular会自动将事件绑定到当前组件实例的对应方法上
修改后的代码示例

file.component.html

<!-- 把#myModal改成#modal,和@ViewChild的查询参数匹配 -->
<div id="modal" class="modal" #modal>
   ...
   <!-- 把onclick改成(click) -->
   <button (click)="confirmModal()">confirm</button>
   <button (click)="closeModal()">close</button>
</div>

file.component.ts 无需额外修改,原逻辑可正常运行

内容的提问来源于stack exchange,提问作者heliosk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:21:03