ngIf
との実質的な違いは何ngSwitch
ですか? どちらのディレクティブも DOM を操作しますが、ngSwitch
より冗長です。ngIf
本当に大きなものが必要な場合を除いて、単に使用するのが典型的なケースngSwitch
ですか?
ngSwitch
とngIf
が直接置き換えられない状況はありますか? それとも、それらの唯一の実際的な違いは構文ですか?
ngIf
との実質的な違いは何ngSwitch
ですか? どちらのディレクティブも DOM を操作しますが、ngSwitch
より冗長です。ngIf
本当に大きなものが必要な場合を除いて、単に使用するのが典型的なケースngSwitch
ですか?
ngSwitch
とngIf
が直接置き換えられない状況はありますか? それとも、それらの唯一の実際的な違いは構文ですか?
ngIf
は基本的に のバージョンでngSwitch
、条件は 1 つです。ngShow
単純に非表示にするのではなく、実際の DOM 要素を削除するという点で異なります。ngSwitch
単一の真の条件チェックのみを使用している場合ngIf
は、同じことを行うと思います。
ngShow
Michele Tilley は、特に/との対比を指摘する点で、まさに正しいngHide
と思います。注意すべき追加の違いが 1 つあります。要素を in-place でng-If
デタッチして再アタッチします。ただし、メイン ディレクティブとその条件を宣言する外側の要素があります: 。その外側の要素内の条件付きコンテンツは、外側の要素の最後の子として編集されるため、外側の要素内の条件のないコンテンツに対する相対的な位置が変更されます。ng-Switch
ng-switch="expression"
append()
また、この CodePenで 3 つすべてのインタラクティブなデモを参照して、実行の違いを示してください。
編集: この動作は Angular 1.2 で変更されました。要素はそのまま残ります。上記の Codepen はこれについて言及し、実証しており、悲しいことに一掃された 1.08 Plunk へのリンクを提供しています...
もう 1 つの違いは、ngIf と ngSwitch は新しいスコープを作成しますが、ngShow/ngHide は作成しないことです。