2016-12-01 11 views
2
対は

角度は任意の.hide間の性能差()とngIfディレクティブを使用してがある場合、私はちょうど思ったんだけど、いくつかのjqueryの機能hereangular.element()。(非表示)ngIf

へのアクセスを提供しますか?

コメント

から来た追加の明確化は、私がngIfとngShowの違いを理解し、私は(angular.elementを呼び出す対ngのディレクティブを使用して間のパフォーマンスの違いについて疑問に思う)し、それを連鎖しています.hide()

hide/show

答えて

1

.hide()の方法は.css("display", "none")に相当し、ng-ifはdomから要素を削除します。これが大きな違いです。

jqlite .hide()ng-show/ng-hideディレクティブ

.ng非表示CSSクラスはAngularJSで事前に定義されていると同じように動作し、(!重要なフラグを使用して)誰にも表示 スタイルを設定します。

https://docs.angularjs.org/api/ng/directive/ngShow

+0

のでngHideは(.hideを使用していますか)?私はDOMの違いを理解しています - 私は、ディレクティブとjqueryスローバックの違いについてもっと興味があります。 (でも、それでも大変役に立ちます) – Kraken

+0

私は自分の答えを編集しました。 doc ng-hideスタイルで報告されているようにdisplay:none!という要素は重要ですが、実際はjqueryではなくjqlite実装を使用していると思います。おそらく.css( "display"、 "none")です。 https://docs.angularjs.org/api/ng/function/angular.element – Karim

3

DOMから要素を削除しないだろうが、ちょうどng-ifとしてdomから完全に素子をremoveなるdisplay:noneプロパティを追加します。

UIに多くの要素がある場合は、ng-ifを使用して関連する要素をインスタンス化して、多くのリソースを節約できます。あなたのビューはすべてのものを作成する必要はなく、display:noneプロパティをviewに表示しないプロパティに適用する必要があります。

あなたのビューから非常に頻繁removeshowに要素を予定している場合は、hidingそれは代わりにremovingperformanceを向上させることができます。

関連する問題