Я хочу получить все элементы формы (input, textarea, et c.), Чтобы добавить функцию ко всем этим элементам при размытии.
Поскольку DOM еще не загружен, я получаю не определено для большинства элементов. Я пытался добавить
$scope.$watch('$viewContentLoaded
, но это не сработало, потому что я не использую ngView и мне не нужен ngView.
Это работает, когда я добавляю задержку по таймауту , но это не лучшее решение, потому что загрузка может отличаться в разных средах
Я пытался:
angular.element(document).ready
, но это также не получало элементы.
Вот код, который работает, но не лучшее решение:
$timeout(() => {
const allFormElements = $element[0].querySelectorAll('input, textarea');
const formElement= angular.element(allFormElements[0]);
formElement.on('blur', function() {
console.log('THis is blur');
});
}, 500);
Есть ли лучшее решение вместо использования тайм-аута с задержкой, чтобы исправить это, без добавления функции вручную во все поля.
К вашему сведению: я использую ng-switch
и некоторые операторы ng-if
для отображения определенных c полей ввода. Может быть, это проблема. Но я не знаю.