我正在观看的Udemy Angular 6视频显示使用第一种语法。但是,我使用WebStorm作为我的IDE,当我使用[(ngModel)]="variable"
语法时,它没有提供任何形式的预测性文本/建议。
如果我只键入ng
,它将为我提供所有Angular ng
属性。如果我选择ngModel
,它将代码格式化为ngModel="{{ variable }}"
。
无论我使用哪种方法,代码都会产生相同的结果。
所以我想知道一种方法在技术上是否比另一种正确?我很困惑为什么视频显示要使用[()]
方法,但是WebStorm希望我使用其他ngModel="{{ }}"
方法。
答案 0 :(得分:4)
有所不同,[]
表示自上而下的单向数据绑定。 [()]
表示双向数据绑定。
另一方面,[ngModel]="field"
等同于ngModel="{{field}}"
。
此外,[(thing)]="field"
是一个盒装香蕉语法糖。
它是[thing]="field"
和(thingChange)="field = $event"
的组合。 thingChange
是EventEmitter
。