javascript - 我可以强制 HTML 元素的 Angular #variableName 返回 ElementRef 吗?
问题描述
如果我创建这样的按钮:
<button #myButton>My Button</button>
...并ViewChild
像这样使用:
@ViewChild('myButton', { static: true }) createButton: ElementRef;
...然后createButton
是(如声明的) an 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"
是看例子,而不是从阐明一般概念的文档中。
解决方案
要指定要查询的令牌,可以使用ViewChild#read
参数,如 Angular 文档中所述:
read - 用于从查询的元素中读取不同的标记。
示例:
@ViewChild('myButton', { read: ElementRef, static: true }) createButton: ElementRef;
这是 Angular 的一个非常糟糕的文档方面。我什至找不到这些参考/变量的正确术语。哈希参考?哈希变量?赫伯特? 我知道#firstName="ngModel" 之类的唯一原因是查看示例,而不是从阐明一般概念的文档中。
关于这一点,您可以在此处查看专门的部分。
推荐阅读
- spring-integration - spring 集成 kafka 出站适配器生产者通道更新元数据
- r - 如何将插入符号用于使用 glmnet 库的正则化回归的多元回归?
- php - 从 Paypal API 获取订单详情
- c++ - 如何遍历txt文件并将行存储在变量c ++中
- agora.io - Agora 动态密钥过期,onTokenExpiredDidExpire 未触发
- android - 安装的 Build Tools 版本 28.0.3 已损坏。如何修复此错误
- r - 如何编写自己的函数来创建引导示例
- django - 如果使用 django-heroku 部署,是否需要设置 Whitenoise?
- android - android - 如何使用 google places api 获取一个城市的所有邮政编码?
- linux - 使用 Ansible 在服务器上执行 shell 脚本