#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