Как получить доступ к элементу DOM за пределами представления содержимого ion

#angularjs #ionic-framework #dom #getelementbyid

#angularjs #ionic-framework #dom #getelementbyid

Вопрос:

Запустив приложение Ionic v1, на моей странице шаблона у меня есть:

 <ion-view>
  <ion-nav-title>
    <div id="navTitle"></div>
  </ion-nav-title>

  <ion-content>
  </ion-content>
</ion-view>
  

Из контроллера представления я пытаюсь получить элемент div с помощью: var el = document.getElementById("navTitle"); но его ошибки указывают на то, что el значение равно null. Кажется, ionic не может видеть элементы за пределами ion-content

Как я могу получить элемент?

Ответ №1:

Я понял это. Оказывается, мне нужно было добавить небольшую задержку к функции, которая вызывалась при вводе контроллера. Функция пыталась получить доступ к элементу dom до того, как он был установлен в ion-nav-title разделе.

 setTimeout(function() {
   doFunction() ;
},500) ;
  

Это не идеально, но это сделало свое дело

ОБНОВЛЕНИЕ: я нашел лучший способ. Элементам за пределами ion-content следует назначить ng-модель, и тогда к модели можно будет получить доступ из обычной области:

 <div id="navTitle" ng-model="$parent.navTitle"></div>
<ion-content>
   ...
</ion-content>
  

Затем в контроллере к нему можно получить доступ с помощью $scope.navTitle