【发布时间】:2021-10-11 16:05:32
【问题描述】:
如果我创建一个这样的按钮:
<button #myButton>My Button</button>
...并像这样使用ViewChild:
@ViewChild('myButton', { static: true }) createButton: ElementRef;
...那么createButton 是(如声明的)ElementRef,其中createButton.nativeElement 是一个 DOM 元素。
但是,如果我这样做:
<button mat-raised-button #myButton>My Button</button>
...我的变量不再是 ElementRef,而是 MatButton 实例。
我真的希望变量保持为ElementRef。我该怎么做?
我见过像<form #myForm="ngForm"... 这样的符号,它确保变量是NgForm,或者<input #firstName="ngModel"...> 得到NgModel。
我尝试了<button #myButton="elementRef" mat-raised-button...,以及该主题的一些不同变体,但它们都产生了编译错误。有没有类似的东西可以解决问题?
这是 Angular 的一个非常缺乏文档记录的方面。我什至找不到这些参考/变量的正确术语。哈希参考?哈希变量?赫伯特?我知道#firstName="ngModel" 之类的唯一原因是通过查看示例,而不是通过说明一般概念的文档。
【问题讨论】:
标签: javascript html angular typescript angular-material