[解決済み】ng-ifとng-show/ng-hideの違いは何ですか?
質問
との違いを理解しようとしています。
ng-if
と
ng-show
/
ng-hide
でも、私には同じに見えます。
どちらを使うか、注意すべき点はありますか?
どのように解決するのですか?
ngIf
は
ngIf
ディレクティブ
を削除または再作成します。
は、式に基づく DOM ツリーの一部です。に割り当てられた式が
ngIf
が偽の値であった場合、その要素は DOM から削除され、そうでない場合はその要素のクローンが DOM に再挿入されます。
<!-- when $scope.myValue is truthy (element is restored) -->
<div ng-if="1"></div>
<!-- when $scope.myValue is falsy (element is removed) -->
<div ng-if="0"></div>
を使用して要素を削除した場合
ngIf
のスコープは破棄され、要素の復元時に新しいスコープが作成されます。で作成されたスコープは
ngIf
は、プロトタイプ継承により親スコープを継承します。
もし
ngModel
の中で使用されます。
ngIf
を使用して親スコープで定義された JavaScript プリミティブにバインドすると、子スコープで変数に変更を加えても親スコープでの値には影響がありません。
<input type="text" ng-model="data">
<div ng-if="true">
<input type="text" ng-model="data">
</div>
この状況を回避し、子スコープ内部から親スコープのモデルを更新するには、オブジェクトを使用します。
<input type="text" ng-model="data.input">
<div ng-if="true">
<input type="text" ng-model="data.input">
</div>
または
$parent
変数を使用して、親スコープオブジェクトを参照します。
<input type="text" ng-model="data">
<div ng-if="true">
<input type="text" ng-model="$parent.data">
</div>
ngShow
は
ngShow
ディレクティブ
を表示または非表示にします。
に与えられた式に基づき、与えられた HTML 要素を表示します。
ngShow
属性で指定します。を削除または追加することで、要素を表示または非表示にします。
ng-hide
CSS クラスを要素に追加します。このクラスは
.ng-hide
CSSクラスはAngularJSであらかじめ定義されており、表示スタイルをnoneに設定します。
!important
のフラグを立てます)。
<!-- when $scope.myValue is truthy (element is visible) -->
<div ng-show="1"></div>
<!-- when $scope.myValue is falsy (element is hidden) -->
<div ng-show="0" class="ng-hide"></div>
このとき
ngShow
と評価されます。
false
とすると
ng-hide
CSSクラスは
class
属性を指定すると、その要素が非表示になります。このとき
true
は、その
ng-hide
CSSクラスは要素から削除され、要素は非表示にならないようになります。
関連
-
[解決済み] AngularJSのシンプルな "Hello, world "が動作しない。
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] angular-routeとangular-ui-routerの違いは何ですか?
-
[解決済み] angular.serviceとangular.factoryの比較
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] ng-modelとng-bindの違いは何ですか?
-
[解決済み] 条件に応じて特定のルートにリダイレクトする機能
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】ng-ifとng-show/ng-hideを比較すると、どのような場合に有利か?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】typeerrorは、未定義のプロパティ'data'を読み取ることができません。
-
[解決済み] 適用がすでに進行中のエラー
-
[解決済み] AngularJSの.$uibModalとは何ですか?
-
[解決済み] ag-gridの行の追加/削除
-
[解決済み] 'ApplicationSignInManager' が見つからない(ASP.NET MVC)
-
[解決済み] AngularJSの「href」と「ng-href」の違いについて
-
[解決済み] AngularJSで画像を表示する
-
[解決済み] Jasmineの "callThrough "と "callFake() "の実用的な例が欲しい
-
[解決済み] AngularJSのコントローラを指定する:ngControllerと$routeProviderを使用する利点
-
[解決済み】ng-ifとng-show/ng-hideを比較すると、どのような場合に有利か?