Есть ли способ создать немодальный диалог в приложении Angular/Electron?

Есть ли способ создать немодальный диалог в приложении Angular/Electron?

Я смотрю на примеры ниже, и все они модальные:

https://material.angular.io/components/dialog/overview

Мне нужно иметь возможность открывать несколько окон одновременно и перемещать их. Но я не нашел для этого образцов.

Спасибо.


РЕДАКТИРОВАТЬ 1:

Я пробовал следующее, но это каким-то образом привело меня на страницу по умолчанию index.html:

window.open('/app/shared/settings/user-preferences.html'); 

РЕДАКТИРОВАТЬ 2:

Я также пробовал следующее, но он не компилируется.

const { BrowserWindow } = require('electron'); //does not compile!!?
let win = new BrowserWindow({ width: 800, height: 600 });
win.on('closed', () => {
  win = null;
});

win.loadURL(`file://${__dirname}/app/shared/settings/user-preferences.html`);

Но это не компилируется и дает мне сообщение об ошибке:

ERROR in ./node_modules/electron/index.js
Module not found: Error: Can't resolve 'fs' in 'C:\projects\...\MyApp\node_modules\electron'
ERROR in ./node_modules/electron/index.js
Module not found: Error: Can't resolve 'path' in 'C:\projects\...\MyApp\node_modules\electron'

1 ответ

Вы можете использовать API window.open(), чтобы открыть новый экземпляр окна окна, предоставив URL-адрес, подобный этому, и используя в нем контекст диалога:

window.open('https://www.angular.io', 'nameOfWindow');

Вот рабочий пример

РЕДАКТИРОВАТЬ1:

Что касается настройки электронного API, вам также необходимо сделать следующее:

Если вы хотите использовать встроенную в Chrome реализацию window.open(), установите для nativeWindowOpen значение true в объекте параметров webPreferences.

РЕДАКТИРОВАТЬ2:

Что касается локального файла, вы можете сделать это:

window.open(`file://${__dirname}/app/shared/settings/user-preferences.html`, 'nameOfWindow')
Другие вопросы по тегам