【发布时间】:2016-12-20 08:55:36
【问题描述】:
是否可以在指定的ui-router 状态下创建新的BrowserWindow?这是我的main.js:
const {app, BrowserWindow, Menu} = require('electron')
let win
function createWindow() {
win = new BrowserWindow({ width: 950, height: 660 })
win.loadURL(`file://${__dirname}/index.html`)
// Emitted when the window is closed.
win.on('closed', () => { win = null })
app.dock.setMenu(Menu.buildFromTemplate([
{ label: 'Open at page', click: () => { goToState('page') } }
]))
}
let goToState = (state) => {
if (!win) {
createWindow()
// when win is ready, call win.webContents.send('sref', state)
} else {
win.webContents.send('sref', state)
}
}
app.on('ready', createWindow)
app.on('activate', () => {
if (win === null) {
createWindow()
}
})
'sref' 事件在渲染过程中执行$state.go(state)。
我已经尝试过的:
-
将函数作为回调传递给
createWindow()function createWindow (callback) { ... if (callback) callback() } let goToState = (state) => { if (!win) { createWindow(() => { win.webContents.send('sref', state) }) } else { win.webContents.send('sref', state) } } -
使用
app.on('web-contents-created')let goToState = (state) => { if (!win) { createWindow() app.on('web-content-created', () => { win.webContents.send('sref', state) }) } else { win.webContents.send('sref', state) } }
感谢阅读。
【问题讨论】:
标签: javascript angularjs angular-ui-router electron