模板中的#foo =“ myFoo”语法是什么意思?

时间:2020-10-20 17:14:06

标签: angular

我了解了标签标记语法<input #myinput >的含义,并提供了用于访问元素的名称,但是我从角度材料网站的示例中无法理解以下语法:

 <mat-menu #menu="matMenu">

等号后的表达式是什么意思?是某种混叠吗?如果是这样,为什么不写<mat-menu #matMenu>

1 个答案:

答案 0 :(得分:3)

使用可以创建引用,以便可以从组件中的其他位置调用。 如文档所述:

模板引用变量通常是对DOM元素的引用 在模板中。它还可以引用指令(其中包含一个 组件),元素,TemplateRef或网络组件

Angular根据声明变量的位置为每个模板引用变量分配一个值:

  • 如果在组件上声明变量,则该变量引用组件实例。
  • 如果您在标准HTML标签上声明该变量,则该变量引用该元素。
  • 如果在元素上声明变量,则该变量引用的是TemplateRef实例,该实例代表模板。
  • 如果该变量在右侧指定了一个名称 ,例如#var="ngModel",则该变量引用元素上的指令或组件,并带有匹配的exportAs名称。

您可以在此处了解更多信息:template-reference-variables | angular.io