Angular [(ngModel)]和[ngModel]之间在属性约束状态方面的差异?

Angular [(ngModel)]和[ngModel]之间在属性约束状态方面的差异?,angular,angular-ngmodel,Angular,Angular Ngmodel,以下是一个模板示例: 在这里,他们都做同样的事情。首选哪一种?为什么?[(ngModel)]=“overridate”是[ngModel]=“overridate”的缩写形式 (ngModelChange)=“overRideRate=$event” [ngModel]=“overRideRate”是将overRideRate绑定到输入值 (ngModelChange)=“overRideRate=$event”是在发出更改事件时,使用输入值更新overRideRate 它们共同构成了A

以下是一个模板示例:


在这里,他们都做同样的事情。首选哪一种?为什么?

[(ngModel)]=“overridate”
[ngModel]=“overridate”的缩写形式
(ngModelChange)=“overRideRate=$event”

  • [ngModel]=“overRideRate”
    是将
    overRideRate
    绑定到
    输入值
  • (ngModelChange)=“overRideRate=$event”
    是在发出
    更改
    事件时,使用
    输入值更新
    overRideRate
它们共同构成了Angular2提供的双向绑定。

非常简单 []=>组件到模板 ()=>模板到组件
[(ngModel)]
[ngModel]=“currentHero.name”(ngModelChange)=“currentHero.name=$event”的一种约定形式>

详情如下:
[ngModel]=“currentHero.name”
是单向绑定的语法,而

[(ngModel)]=“currentHero.name”
用于双向绑定,语法由以下内容合成:

[ngModel]=“currentHero.name”
(ngModelChange)=“currentHero.name=$event”

如果只需要传递模型,请使用第一个。如果您的模型需要监听更改事件(例如,当输入字段值更改时),请使用第二个。

Angular2+数据流: 在Angular中,数据可以以下列方式在模型(组件类ts.file)和视图(组件的html)之间流动:

  • 从模型到视图
  • 从视图到模型
  • 数据双向流动,也称为双向数据绑定 语法: 要查看的模型:

    <input type="text" [ngModel]="overRideRate">
    
    (input)="change($event)"            // calling a method called change from the component class
    (input)="overRideRate=$event.target.value" // on input save the new value in the title property
    
    <input [(ngModel)]="overRideRate" type="text" >
    
    这里发生的是触发了一个事件(在本例中为输入事件,但可以是任何事件)。然后,我们可以调用组件类的方法,或者直接将属性保存在类属性中

    双向数据绑定:

    <input type="text" [ngModel]="overRideRate">
    
    (input)="change($event)"            // calling a method called change from the component class
    (input)="overRideRate=$event.target.value" // on input save the new value in the title property
    
    <input [(ngModel)]="overRideRate" type="text" >
    
    
    
    以下语法用于双向数据绑定。它基本上是两种语言的语法糖分:

  • 将模型绑定到视图
  • 将视图绑定到模型

  • 现在,我们的类内部发生了一些变化,这将反映我们的视图(模型到视图),并且每当用户更改输入时,模型都将更新(视图到模型)

    [ngModel]
    评估代码并生成输出(无双向绑定)
    [(ngModel)]
    评估代码并生成输出,还启用双向绑定。

    [ngModel]
    -它只是属性绑定,而不是双向绑定。因此,输入新值不会更新
    重写
    [(ngModel)]是来自Angular 2的双向绑定。[ngModel]仅用于显示。弃用警报:在Angular 6中,()声明:Angular v6中已弃用对将ngModel输入属性和ngModelChange事件与反应式表单指令一起使用的支持,并将在Angular v7中删除。另请参见:()sboggs10您提供的链接是指将ngModel与反应式表单相结合,这在大多数情况下与问题无关。下面是关于
    [(ngModel)]
    的一个很好的解释,