ngSwitch 是“属性指令”还是“结构指令”?

Dea*_*ool 4 javascript dom ng-switch angular2-directives angular

我对 ngSwitch 指令有点困惑——它是“属性指令”还是“结构指令”

属性指令用 '方括号编写如 [ngStyle]、[ngClass] 等(我们将其写为 [ngSwitch],将其称为“属性指令”)。

结构指令用“ aestrick ”编写,如 *ngFor、*ngIf 等(我们将 case 写为 *ngSwitchCase="..." 这意味着它是一个结构指令)。

<div [ngSwitch]="colorValue">
    <p *ngSwitchCase="red">Red</p>
    <p *ngSwitchCase="blue">Blue</p>
    <p *ngSwitchCase="green">Green</p>
</div>
Run Code Online (Sandbox Code Playgroud)

根据上面的代码,将 ngSwtich 分类到任一指令类别会变得非常混乱!有人可以帮助我理解 ngSwitch 的指令类型吗?

j3f*_*3ff 6

[ngSwitch]是与和结合使用的属性指令,两者都是结构指令*ngSwitchCase*ngSwitchDefault

\n

这在 Angular 的文档中有清楚的解释......

\n
\n
    \n
  • NgSwitch\xe2\x80\x94属性指令,用于更改其伴随指令的行为。
  • \n
  • NgSwitchCase\xe2\x80\x94结构指令,当其绑定值等于开关值时将其元素添加到 DOM,并在其不等于开关值时删除其绑定值。
  • \n
  • NgSwitchDefault\xe2\x80\x94结构指令,在没有选定的 NgSwitchCase 时将其元素添加到 DOM。
  • \n
\n
\n

https://angular.io/guide/built-in-directives#switching-cases-with-ngswitch

\n