7

私は一般的に JS で angularJS を使用するのが初めてで、$document の使用について少し混乱しています。私が理解したことによると、 $document はいくつかの JQuery 関数を公開しています。したがって、セレクターに一致する要素を削除したい場合は、次のようにします。

$document.remove('.someClassSelector');  

要素はDOMツリーから削除する必要がありますよね?そうでない場合、DOM 要素とその css を angular で操作する正しい方法は何ですか。

4

2 に答える 2

10

DOM要素を非表示/表示するためのより一般的な「角度のある方法」は、ngHideおよび/またはngShowディレクティブを使用することです-HTMLでそれらを「宣言」します(したがって、概要ページのこのステートメント:

Angularは、UIの構築とソフトウェアコンポーネントの相互接続に関しては、宣言型コードの方が命令型コードよりも優れているという信念に基づいて構築されています

同様に、CSSクラスを追加/削除するには、宣言型の方法でngClassディレクティブを使用します。モデルへの変更(つまり、$ scopeプロパティ)は、CSSクラスの非表示/表示と追加/削除を促進するはずです。

より複雑なものが必要な場合は、DOM操作をカスタムディレクティブ(通常はリンク関数)に配置します。

jQueryの世界では、DOM操作コードをトリガーするイベントについて考えます(たとえば、ある要素でremove()を呼び出します)。AngularJSの世界では、モデルの変更をトリガーするイベントについて考えたいと思います。これにより、宣言型HTMLに基づいてUIの変更が自動的にトリガーされます(たとえば、ng-clickは、要素のng-showに関連付けられた$scopeプロパティを設定します)。私はまだ自分の考えを調整しています。

ほとんどのAngularJSアプリケーションでは、$documentを使用する必要はありません。

于 2012-11-07T17:56:34.890 に答える
5

AngularJS には、Jquery (jqLit​​e) の軽量バージョンが組み込まれています。

jqLit​​e のみを (jquery を埋め込まずに) 使用する場合は、次のようにして要素を削除できます。

angular.element(yourElement).remove()

$documentwindow.document への jqLit​​e ショートカットです。

参照: docs.angularjs.org/api/angular.element

于 2012-11-07T09:34:58.977 に答える