[(ngModel)]和[ ngModel ]在绑定状态到属性上的区别?

下面是一个模板示例:

<input type="number" class="form-control" [(ngModel)]="overRideRate" formControlName="OverRideRate">


<input type="number" class="form-control" [ngModel]="overRideRate" formControlName="OverRideRate">

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

143946 次浏览

[(ngModel)]="overRideRate"是 < code > [ ngModel ] = “ overRideRate”的简写形式 (ngModelChange) = “ overRideRate = $event”

  • [ngModel]="overRideRate"overRideRate绑定到 input.value
  • (ngModelChange)="overRideRate = $event"是在发出 change事件时用值 input.value更新 overRideRate

它们一起就是 Angular2提供的双向绑定。

It's quite simple [] = > 组件到模板 () = > 模板到组件 [(ngModel)][ngModel]="currentHero.name" (ngModelChange)="currentHero.name=$event">的一种缩小形式

More detail here : Https://angular.io/docs/ts/latest/guide/template-syntax.html#!#ngmodel

[ngModel]="currentHero.name"是单向绑定的语法,而,

[(ngModel)]="currentHero.name"是用于双向绑定的,语法是由以下内容组合而成的:

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

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

Angular2 + 数据流:

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

  1. 从模型到视图。
  2. 从视图到模型。
  3. 数据向两个方向流动,也称为 双向数据绑定

句法:

参考模型:

<input type="text" [ngModel]="overRideRate">

这种语法也称为 财产约束力财产约束力。现在,如果输入字段的 overRideRate属性发生变化,视图将自动更新。但是,如果视图在用户输入数字时更新,则不会更新 overRideRate属性。

view to model:

(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" >

The following syntax is used for 2-way data binding. It is basically a syntactic sugar for both:

  1. 将模型绑定到视图。
  2. 将视图绑定到模型

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

[ngModel]计算代码并生成输出 (没有双向约束)
[(ngModel)]计算代码并生成输出 并且还启用了双向绑定