Angular2 Form输入中的#name和[(ngModel)] =“name”有什么区别?
答
#XXX
#xxx
可以让你获得一个元素的参考。
<input #inp (change)="foo = inp.value">
listenes的变化事件,并呼吁onChange()
并通过输入value
财产
对于双向绑定,您还需要
<input #inp (change)="foo = inp.value)" [value]="foo = $event">
NgModel
<input [(ngModel)]="foo">
使用NgModel
指令,该指令允许将DOM输入元素和自定义组件集成到Angular form功能中。 它也可以在没有表格的情况下使用。 NgModel
是对各种元素和组件的抽象,而以上(#inp
)示例仅适用于具有value
属性并发出change
事件的输入元素。
[(ngModel)]="foo"
是
[ngModel]="foo" (ngModelChange)="foo = $event"
简写形式示出它是用于双向绑定。
暗示
#xxx
返回一个部件或指令例如,如果元素不是一个普通的DOM元素,但角分量或具有施加角指令。
答
在#NAME语法是一个模板参考它指的是HTML对象的详细信息,可在所述角文档中找到: Angular template guide
在元件上的[(ngModel)]被设置双向绑定值并将其分配给一个变量。