Я хочу получить доступ к элементу ввода, используя jquery, скрытый внутри директивы * ngIf. Для простого примера:
...
export class ViewChannelScheduleComponent implements OnInit {
someFunction() {
...
doSomething($('#my-input'));
...
}
}
...
<!-- and finally -->
<input id='my-input' />
Это прекрасно работает, пока я не решил скрыть компонент, используя * ngIf. Как то так ..
...
export class ViewChannelScheduleComponent implements OnInit {
isInputVisible = false;
ngOnInit() {
this.isInputVisible = true;
doSomething($('#my-input')); //unable to catch element
}
}
...
<!-- and finally -->
<button (click)="showInputBox()">Enable</button>
<input *ngIf="isInputVisible" class='date-time-picker' />
Я понял, что сразу после установки значения isInputVisible
jquery не может получить элемент. Я проверил вещь быстрым взломом:
showInputBox() {
this.isInputVisible = true;
setTimeout(doSomething($('#my-input')), 100); //this works
}
Есть ли какой-нибудь изящный способ попросить jquery подождать, пока элемент станет видимым, и обратный вызов?
Или как-нибудь ссылаться на элемент ввода напрямую в angular и конвертировать его в объект jquery внутри функции?