web-dev-qa-db-fra.com

Comment vérifier si un élément avec ID existe dans AngularJS

Comment puis-je vérifier si un élément avec un ID spécifique existe déjà dans mon DOM dans une directive Angular? En utilisant angular.element(), un élément est créé s'il n'en existe pas. Par exemple, angular.element('someID') retournera un élément, qu'il en existe déjà ou non.

Ce que je fais maintenant comme solution consiste à utiliser la fonction .html() jqLite comme ceci:

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

console.log ('ne se déclenche que si l'élément existe déjà');

}

Y a-t-il une meilleure manière de faire cela? Je voudrais éviter d'inclure l'ensemble de jQuery juste pour cela.

13
Dimitris

Angular.element ($ document) .find ('# someElementID') et angular.element ('# someElementID') renvoient un tableau vide, au cas où plusieurs nœuds dom correspondent au sélecteur.

Vous devriez être assez sûr de faire ce qui suit: 

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

Notez également que la méthode jQLite .find () ne prend en charge que les noms de balises.

29
DrDyne

J'ai testé, ça marche bien ..

Si l'ID est existant, il retourne 1

L'ID n'est pas existant, il retourne 0

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