NgSwitchを この例では として使用しようとしていますが、エラーが発生します。
私のコンポーネント:
template: `
<div layout="column" layout-align="center center">
<div [ng-switch]="value">
<div *ng-switch-when="'init'">
<button md-raised-button class="md-raised md-primary">User</button>
<button md-raised-button class="md-raised md-primary">Non user</button>
</div>
<div *ng-switch-when="0">Second template</div>
<div *ng-switch-when="1">Third Template</div>
</div>
</div>`,
directives: [NgSwitch, NgSwitchWhen, NgSwitchDefault]
})
私のプランカー -wizard.ts
私は何を取りこぼしたか?ありがとうございました
update
https://angular.io/api/common/NgSwitch を参照してください
オリジナル
テンプレートは大文字と小文字が区別されます(beta.47 AFAIR以降)。ディレクティブ(属性)セレクターはキャメルケースに変更されました。たとえば、ng-switch
からngSwitch
へ。
タグ名は、引き続きWebコンポーネントとの互換性のためにダッシュを使用します。たとえば、<router-link>
、<ng-content>
などです。
ngSwitchCase
への詳細
<container-element [ngSwitch]="switch_expression"> <some-element *ngSwitchCase="match_expression_1">...</some-element> </container-element>
<container-element [ngSwitch]="switch_expression"> <some-element *ngSwitchCase="match_expression_1">...</some-element> <some-element *ngSwitchCase="match_expression_2">...</some-element> <some-other-element *ngSwitchCase="match_expression_3">...</some-other-element> <ng-container *ngSwitchCase="match_expression_3"> <!-- use a ng-container to group multiple root nodes --> <inner-element></inner-element> <inner-other-element></inner-other-element> </ng-container> <some-element *ngSwitchDefault>...</some-element> </container-element>
<container-element [ngSwitch]="switch_expression"> <some-element *ngSwitchCase="match_expression_1">...</some-element> <some-other-element *ngSwitchDefault>...</some-other-element> </container-element>
留意すべき3つのことngSwitch
、ngSwitchCase
、およびngSwitchDefault
。
ngSwitch-model
のproperty value
を設定します。たとえば、viewMode
はコンポーネントのプロパティです。
ngSwitchCase-value
のproperty
がngSwitchChanges
で定義されている場合にレンダリングするものを定義します。例えばwhen viewMode = 'map'
ngSwitchDefault-value
が一致しない場合にレンダリングするものを定義します。例えばwhen viewMode=undefined
。デフォルトはrendered
です。
別の重要なポイントは、[ngSwitchCase]
内に<template></template>
を設定する必要があるということですHTML要素それ以外の場合は機能しません。 Angular
は自動的に<div>
タグに変換します。
<div [ngSwitch]="'viewMode'">
<template [ngSwitchCase]="'map'" ngSwitchDefault>
Map View Content...
</template>
<template [ngSwitchCase]="'list'">
List View Content...
</template>
</div>
幸運を。
また、サイト上のドキュメントでは見なかった* ngSwitchDefaultもあります。名前が示すように、他のケースに合わない場合はデフォルトでこれになります。
誰かがこれに遭遇した場合、これは主にヘッドアップです。