我有点困惑,因为一些教程使用#来获取输入,而有些使用[(ngModel)]
答案 0 :(得分:19)
<强> #XXX 强>
#xxx
允许您获取元素引用。
<input #inp (change)="foo = inp.value">
侦听更改事件并调用onChange()
并传递输入value
属性
对于双向绑定,您还需要
<input #inp (change)="foo = inp.value)" [value]="foo = $event">
<强> NgModel 强>
<input [(ngModel)]="foo">
使用NgModel
指令,该指令允许将DOM输入元素和自定义组件集成到Angular表单功能中。
它也可以在没有表格的情况下使用。
NgModel
是对所有类型的元素和组件的抽象,而上面的(#inp
)示例仅适用于具有value
属性并发出change
事件的输入元素。
[(ngModel)]="foo"
是
的缩写形式[ngModel]="foo" (ngModelChange)="foo = $event"
表示它是双向绑定。
<强>暗示强>
#xxx
返回组件或指令实例,如果该元素不是普通的DOM元素,而是Angular组件或应用了Angular指令。
答案 1 :(得分:5)
#name语法是一个引用html对象的模板引用,可以在Angular文档中找到更多信息: Angular template guide
[(ngModel)]正在对元素值设置双向绑定并将其赋值给变量。
答案 2 :(得分:0)
<input #inp (change)="foo = inp.value">
收听更改事件并调用onChange()
并传递输入值属性
对于双向绑定,您还需要
<input #inp (change)="foo = inp.value)" [value]="foo = $event">
NgModel
<input [(ngModel)]="foo">
使用NgModel指令,该指令允许将DOM输入元素和自定义组件集成到Angular表单功能中。也可以不带形式使用。 NgModel是所有元素和组件的抽象,而上面的(#inp)示例仅适用于具有value属性并发出更改事件的输入元素。
[(ngModel)]="foo"
是
的缩写[ngModel]="foo" (ngModelChange)="foo = $event"
这表明它用于双向绑定。
答案 3 :(得分:-1)
模板引用变量仅用于访问元素的dom属性。
因此,对于两个绑定或任何更改,我们需要编写
->
但是通过使用ngmodel绑定可以帮助实现角度两种方式的数据绑定,可以在短时间内通过以下方式完成:
->