【发布时间】:2021-02-11 00:36:43
【问题描述】:
基于https://stackblitz.com/edit/angular-m2tkrf?file=src%2Fapp%2Fhero-form%2Fhero-form.component.html,稍作修改:
.ts
export class page
{
model = {mm: "Inside model"}; // my understanding is 'model' is not a required object for binding.
X = "xxx"; // wired with display via [(ngModel)]="X"
Y = "yyy";
mm="Outside of model";
}
.html
Binding:
<input type="text"
required name="bogus123"
[(ngModel)]="X"
#Y="ngModel">
<div [hidden]="Y.valid || Y.pristine">
A value is required
</div>
<div>
X value ="{{X}}"
</div>
这是我的理解:
required name="bogus123" 是 input 标记的 HTML 属性,尽管下一个 <div> 中有什么内容,不在讨论范围内。
[(ngModel)]="X" 表示将此输入框与.ts 内名为X 的局部变量双向绑定
认为#X="ngModel" 是在.ts 中使用变量X 连接此输入框的另一种方法,但得到
“不能赋值给引用或变量!”
在 .html 中将 Y 替换为 mm 有效。已经研究过这两个SO
What is the difference between the #name and [(ngModel)]="name" in Angular2 Form input?
Angular 2 bind HTML inputs to component variables like in Vue?
有人可以用简单的英语解释什么是#something="ngModel",没有“指令”和“组件”吗?
【问题讨论】:
标签: angular