Javascript 混淆为[(ngModel)]不';不属于Angular4中的任何指令类别
根据Angular文档,Angular指令有3种类型:Javascript 混淆为[(ngModel)]不';不属于Angular4中的任何指令类别,javascript,angular,ngmodel,Javascript,Angular,Ngmodel,根据Angular文档,Angular指令有3种类型: 组成部分 结构的 属性 根据以下官方链接: 1。组件 <home></home> <about-us></about-us> <support></support> <div [ngClass]="red"> ... </div> <div [ngStyle]="{'background':colorValue}> ... &l
- 组成部分
- 结构的
- 属性
<home></home>
<about-us></about-us>
<support></support>
<div [ngClass]="red"> ... </div>
<div [ngStyle]="{'background':colorValue}> ... </div>
2。结构指令
<div *ngIf="age < 18"> ... </div>
<div *ngFor="let x of students"> ... </div>
。。。
...
3。属性指令
<home></home>
<about-us></about-us>
<support></support>
<div [ngClass]="red"> ... </div>
<div [ngStyle]="{'background':colorValue}> ... </div>
。。。
[(ngModel)]是Angular使用的“便利”指令,通过组合属性指令和事件侦听器来简化双向绑定。它实际上不属于您提到的任何指令组,但它也不是自己的组
使用,您也可以创建自己的指令,Angular文档提供的类型可能是为了简化Angular(…或者在您的情况下,提供了混淆的可能性;-)[(NgModel)]
是一个与事件侦听器相结合的属性指令。此[(NgModel)]
是以下内容的简写:
[ngModel]=“variable”(ngModelChange)=“variable=$event”
。正如您所看到的,在幕后它隐藏了一些类似于EventEmitter的东西。因此,它将变量
绑定到模板,并侦听-模板和模型中的更改事件 NgModel
是一个属性指令。它作为属性应用于(几乎)DOM中的任何元素
forNgModel
显示其选择器为[NgModel]…
,这意味着它作为属性应用于(几乎)DOM中的任何元素
您链接的官方文章总结了三个类别:
组件-带有模板的指令
结构指令-通过添加和删除DOM元素来更改DOM布局
属性指令-更改元素、组件或其他指令的外观或行为
在元素上放置[(ngModel)]
时,通过将输入和输出与元素相关联来修改其行为(请参见@JensHabegger的答案)。“盒子里的香蕉”是用于双向绑定的语法糖,详细说明如下。本质上,您是在应用带有输入的[ngModel]
,然后根据其输出自动修改值
因此,NgModel
肯定是一个属性指令