2

ng-switch特定のインデックスを設定すると、特定の要素を表示して要素を切り替えようとしています。

ng-switch最後のswitchステートメントのみを表示していることを除いて、機能しています。

このコードを使用すると、「フレーム 2」の div のみが表示されます。

<div ng-switch="frame">
  <div ng-switch-when="1">Frame 1</div>
  <span>Some permanent text</span>
  <span ng-switch-when="2">Text relevant to frame 2</span>
  <div ng-switch-when="2">Frame 2</div>
</div>

が2に設定されているswitch-when場合、上記をすべて表示したい。frame

: マークアップは変更できません。

  • これどうやってするの?
  • そして、私ができない場合、より良い/別の代替手段はありますか?
4

2 に答える 2

0

アンドレ・ディオンが言及したネストはよりクリーンなソリューションだと思いますが、この形式が必要な場合は代わりに ng-if を使用できます。これには Angular 1.1.5+ が必要です。

<div>
  <div ng-if="frame==1">Frame 1</div>
  <span>Some permanent text</span>
  <span ng-if="frame==2">Text relevant to frame 2</span>
  <div ng-if="frame==2">Frame 2</div>
</div>

ドキュメント: http://docs.angularjs.org/api/ng.directive:ngIf

編集: ng-show は単に要素を非表示にしますが、 ng-if は要素を DOM から完全に削除します。

于 2013-11-05T14:51:49.053 に答える