Quiero hacer clic en un botón para abrir el cuadro de diálogo de la carpeta en mi componente. Esto es lo que estoy tratando de hacer:
HTML:
<div> <input class="u-full-width" placeholder="Folder" type="text" [(ngModel)]="folder"> <button id="browse" class="button-primary" (click)="browse()">Browse</button> <input id="fileInput" type="file" style="display: none" /> </div>componente.ts
// var remote = require('remote'); // var dialog = remote.require('dialog'); folder: string; browse() { dialog.showOpenDialog({title: 'Select a folder', properties: ['openDirectory']}, (folderPath) => { if (folderPath === undefined){ console.log("You didn't select a folder"); return; } this.folder = folderPath; }); }Entonces, ¿cómo importo el control remoto y el diálogo?
Simplemente importe el módulo "remoto" usando la importación es6, y luego su archivo ts será como
import { remote } from 'electron'; folder: string; browse() { remote.dialog.showOpenDialog({title: 'Select a folder', properties: ['openDirectory']}, (folderPath) => { if (folderPath === undefined){ console.log("You didn't select a folder"); return; } this.folder = folderPath; }); }Puedes probarlo con la biblioteca ngx-electron
import {ElectronService} from 'ngx-electron' export class DialogHelper { private static alert = new ElectronService().remote.dialog; }Estás cerca. De acuerdo con la documentación ( https://github.com/electron/electron/blob/master/docs/api/dialog.md ) para usarlo en el renderizador, debe hacer const {dialog} = require('electron').remote por lo que su primera variable remote no es necesaria.