web-dev-qa-db-ja.com

IDを持つ要素がAngularJSに存在するかどうかを確認する方法

Angularディレクティブ内のDOMに特定のIDの要素が既に存在するかどうかを確認するにはどうすればよいですか?angular.element()を使用して、存在しない場合に要素が作成されます。例angular.element('someID')は、要素がすでに存在しているかどうかに関係なく要素を返します。

回避策として私が今行っているのは、次のような.html() jqLit​​e関数を使用することです。

if(angular.element( '#someElementID').html()){

console.log( '要素がすでに存在する場合にのみ発生します');

}

これを行うより良い方法はありますか?このためだけにjQuery全体を含めることは避けたいと思います。

16
Dimitris

Angular.element($ document).find( '#someElementID')とangular.element( '#someElementID')は両方とも、複数のdomノードがセレクターと一致した場合に空の配列を返します。

次のことを行うと、かなり安全になるはずです。

if ( angular.element('#someElementID').length ) {
    console.log('#someElementID exists');
}

また、jQLite .find()メソッドはタグ名のみをサポートすることに注意してください。

33
DrDyne

私はテストしましたが、正常に動作しています。

IDが存在する場合、1を返します

IDは存在しません。0を返します

if(angular.element('#someElementID').length >0){
 console.log("Id is available.");
}else{
  console.log("Id is not available.");
}
0
Dinesh Vaitage