模板引用变量中ref-前缀和#有什么区别(Angular 2)

What's the difference between ref- prefix and # in Template reference variable (Angular 2)

我想了解输入文本框中下面提到的模板引用变量符​​号之间的区别。

<input type="text" name='name' #name [(ngModel)]='model'>
<input type="text" name='name' ref-name [(ngModel)]='model'>

使用#nameref-name有什么区别。
使用 ref-name 时变量的范围是否发生变化?
任何人都可以提出最佳做法和理由吗?

模板引用变量是一个我们可以访问DOM属性的变量。引用变量指的是它所附加的元素、组件或指令。在整个模板的任何地方都可以访问。

<input type="text" name='name' #name [(ngModel)]='model'>

#name 在元素上声明一个名称变量。 引用#... 现在总是表示引用-。 在 *ngFor 之外使用 # 或 ref-。 您可以参考以下 URL:http://www.concretepage.com/angular-2/angular-2-template-reference-variable-example

它们是完全相同事物的两种不同语法。

您可以这样想:有些人(和编辑)不喜欢新的“#variable”语法,因此 Angular 提供了一个选项来使用更多 'palatable'语法。

Template reference variable is a variable using which we can access DOM properties.

我们使用模板引用变量访问 DOM 元素属性的值。模板引用变量使用#和ref-作为前缀声明,例如#itemref-item.

示例:使用输入文本框的模板引用变量

<input type="text" #name placeholder="Enter your name" />

这里 #name 是模板引用变量,要获取 DOM 我们遵循的属性

name.placeholder 如果我们指定,它会给出“文本框的占位符”。

name.value 它给了我们文本框的“价值”。

name.type 它让我们“键入”我们的文本框。

这是我创建的示例。

HTML 页

输出

你可以用 ref-name 参考变量做同样的事情。