Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 混淆为[(ngModel)]不';不属于Angular4中的任何指令类别_Javascript_Angular_Ngmodel - Fatal编程技术网

Javascript 混淆为[(ngModel)]不';不属于Angular4中的任何指令类别

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

根据Angular文档,Angular指令有3种类型:

  • 组成部分
  • 结构的
  • 属性
根据以下官方链接:

1。组件

<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中的任何元素

for
NgModel
显示其选择器为
[NgModel]…
,这意味着它作为属性应用于(几乎)DOM中的任何元素

您链接的官方文章总结了三个类别:

组件-带有模板的指令

结构指令-通过添加和删除DOM元素来更改DOM布局

属性指令-更改元素、组件或其他指令的外观或行为

在元素上放置
[(ngModel)]
时,通过将输入和输出与元素相关联来修改其行为(请参见@JensHabegger的答案)。“盒子里的香蕉”是用于双向绑定的语法糖,详细说明如下。本质上,您是在应用带有输入的
[ngModel]
,然后根据其输出自动修改值

因此,
NgModel
肯定是一个属性指令