Как проверить, существует ли элемент с идентификатором в AngularJS

Как проверить, существует ли элемент с определенным идентификатором в моей DOM внутри директивы Angular? Используя angular.element(), элемент создается, если его не существует, например angular.element('someID') возвращает элемент, уже существующий или нет.

Что я сейчас делаю в качестве обходного пути, использую функцию .html() jqLite следующим образом:

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

console.log( "только срабатывает, если элемент уже существует" );

}

Есть ли лучший способ сделать это? Я хотел бы избежать включения всего jQuery только для этого.

Ответ 1

Оба angular.element($ document).find('# someElementID') и angular.element('# someElementID') возвращают пустой массив, если несколько dom-узлов соответствуют селектору.

Вы должны быть достаточно безопасны, делая следующее:

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

Также имейте в виду, что метод jQLite.find() поддерживает только имена тегов.

Ответ 2

Я тестировал, его работала нормально.

Если идентификатор существует, он возвращает 1

Идентификатор отсутствует, он возвращает 0

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