我有一个这样的菜单项
items = [{
label: 'Upload', icon: 'pi pi-plus', command: (event) => { //get the event.target.file and pass it into a service that will manage the rest},
...
}]
所以在 Html 中我使用像这样的
<p-menu>
<p-menu [model]="items"></p-menu>
所有标签和图标都正确显示。但是,如何让上传打开文件上传提示(如
<input type='file'>
),以便我可以将 event.target.file 传递给命令中调用的服务?
就我的研究而言,PrimeNg 中没有任何功能可以让这一切变得更容易。 为了提示用户上传文件,我必须创建一个输入文件类型,然后在调用 click() 事件后获取文件
因此,在 menuItem 中,我调用提示,然后调用服务。
items = [{label: 'Upload', icon: 'pi pi-plus', command: () => {upload_prompt( )}]
upload_prompt( ): void {
const input = document.createElement( 'input' );
input.type = 'file';
input.multiple = true;
input.onchange = () => {
let file = input.files as FileList;
file_upload_service( file )
}
input.click()
}
希望这对某人有帮助。
谢谢你!帮助很大!