Синглтон редукционный магазин для приложения Angular Electron - PullRequest
0 голосов
/ 30 марта 2019

Итак, у меня есть приложение Electron, которое содержит Angular SPA.Состояние приложения обрабатывается с помощью ngrx Redux.

Я ищу возможность создать новый BrowserWindow и сохранить состояние из исходного окна.Я видел с React, что это можно сделать с помощью redux-electron-store, но я не могу найти ничего похожего на Angular.Это возможно с Angular?

1 Ответ

1 голос
/ 30 марта 2019

Этого можно добиться с помощью ipc.

Оригинальное окно рендеринга JS

    import { ipcRenderer } from "electron";

    let personName = 'Leandro'
    let personAge = -1

    ipcRenderer.send("send-data", {name:personName, age:personAge})

Главная / index.js

    // When receives data from ipcRenderer/Original renderer 
    // emits that data to channel "here is your data"
    ipcMain.on("send-data", function(event, args){
        ipcMain.emit("here-isyour-data", data) 
    })

Рендерер приемника

    let personName = null
    let personAge = null
    ipcRenderer.on("here-isyour-data",function(event, args) {
       personName = args.personName
       personAge = args.personAge
    })

Лучше сделать основной index.js контроллером, но при желании вы можете сделать так, чтобы процесс рендерера связывался друг с другом, используя ipcRenderer.sendTo().

Чтобы решить вашу проблему, вы можете сделать это

// On creation/indexjs
let newWindow = new BrowserWindow()
 newWindow.emit('hey, im created')

 // On render.js
 let personName = null
 let personAge = null
 newWindow.once('oke, here is your data', function(event, args){
       personName = args.personName
       personAge = args.personAge
})

// On original render.js

    let personName = 'Leandro'
    let personAge = -1
    ipcRenderer.once("hey, im created", function(){
       ipcRenderer.send("oke, here is your data", {name:personName, age:personAge})
    })

OR

Иметь mainRenderer в качестве посредника на "// При создании / indexjs".

Я надеюсь, что помог, я никогда не использовал угловые, но я думаю, что вы можете достичь этого с помощью электронов.

Для получения дополнительной информации посетите электронный: Ipc Docs

Если вам нужен классный и улучшенный обработчик окон, перейдите сюда: GitHub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...