Tengo un elemento de menú como este
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}, ... }] Así que en el Html estoy usando el <p-menu> así
<p-menu [model]="items"></p-menu> Y todas las etiquetas e iconos se muestran correctamente. Pero, ¿cómo hago para que la carga abra un aviso para la carga de archivos como un <input type='file'> para que pueda pasar event.target.file al servicio al que se llama en el comando?
En lo que respecta a mi investigación, no hay ninguna característica en PrimeNg que lo haga más fácil. Para pedirle al usuario que cargue un archivo, tuve que crear un tipo de archivo de entrada y luego obtener los archivos después de llamar al evento click() en él
Entonces, en el elemento del menú, llamo al indicador que luego llama al servicio.
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() }Espero que esto ayude a alguien.