当等效的 DOM 事件侦听器触发更改事件时,什么可能会导致更改事件不以角度触发?

问题描述 投票:0回答:1

我有一个角度应用程序,其组件具有如下文件输入:

<input #fileInput type="file" (change)="uploadFile($event)" />

该组件在应用程序的多个部分之间共享。几乎在所有情况下,这都完全符合预期。但是,在我的应用程序的一页上,当在 Salesforce iOS 应用程序中的

iframe
中的
WkWebView
中使用该应用程序时,如果用户执行 iOS“拍摄照片或视频”工作流程,则
change
事件不会触发这是文件输入的 iOS 实现的一部分。应用程序中的其他页面可以很好地使用该输入;其他 iOS 应用程序可以使用 iframe 该网站并正常使用此页面;使用“拍照或录像”以外的选项就可以了。

更奇怪的是,如果我绕过 Angular 将

change
事件本地附加到元素上,它就可以正常工作:

@ViewChild('fileInput', { static: true }) fileInput: ElementRef;

ngAfterViewInit() {
  this.fileInput.nativeElement.addEventListener('change', this.uploadFile);
}

这种极其狭窄的特定因素的融合导致了该错误。经过几天的思考并试图找出根本原因,我已经没有想法了。什么可能会干扰

change
事件触发?

顺便说一句,我已经尝试了一些技巧来

null
输出输入值,如thisone等答案中所建议的那样。这在这里没有帮助。

ios angular iframe wkwebview onchange
1个回答
0
投票

您可以将 { static: true } 更改为 { static: false } ,以便在尝试访问和添加事件侦听器时该元素不会未定义。

© www.soinside.com 2019 - 2024. All rights reserved.