Запуск входного файла триггера в Ionic 4 после смены страницы

Я хочу запускать/открывать входные данные, поступающие с другой страницы в Ionic 4.

На стр. 1 у меня есть кнопка, чтобы перейти к модальному, в модуле страницы. Я хочу автоматически запускать диалог <input file>

Составная часть

ionViewWillEnter() {
    document.getElementById('file').click(); // Tried with this one 1st, this only works in Internet Explorer / Edge
    this.fileInput.nativeElement.click();    // And also this with @ViewChild
}

HTML

<input type="file" name="file" #file id="file" (change)="fileChange($event)" required>

Ответы

Ответ 1

Я решил, что вставка скрытого входного файла на стр. 1, когда пользователь пытается перейти на страницу2, я запускаю ввод файла.

Когда пользователь заканчивает выбор файла, я отправляю изменение события файла на страницу 2 и управляю всей логикой на стр. 2.

Ответ 2

Это код, который я использую, чтобы вызвать щелчок на <input> -element:

@ViewChild("file") fileInput: ElementRef;

triggerClick() {
    let event = new MouseEvent('click', {bubbles: true});
    this.renderer.invokeElementMethod(this.fileInput.nativeElement, 'dispatchEvent', [event]);
}

Ответ 3

Измените это:

ionViewWillEnter() {
    document.getElementById('file').click(); // Tried with this one 1st
    this.fileInput.nativeElement.click();    // And also this with @ViewChild
}

К этому:

ionViewDidLoad() {
    document.getElementById('file').click(); // Tried with this one 1st
}

Ответ 4

Попробуйте ngAfterViewInit() Lifecycle hook, который вызывается после полного инициализации представления компонента.

ngAfterViewInit() {
    document.getElementById('file').click();
}