我试图在访客页面(角度控制器)中要求一个模块。
当应用程序使用旧版本的节点(0.30.5)时,它运行得非常好。但是我必须将电子升级到最新版本(0.37.6),并且已经更新了电子应用程序中ipc
的所有用法,现在它已经ipcMain
和ipcRenderer
。
以前,角度控制器设法要求使用模块:
var ipc = window['require']('ipc');
所以我认为将其改为:
var ipcRenderer = window['require']('electron').ipcRenderer;
然而,这不起作用,它表明 window.require不是一个功能 。我已经多次试过让它与其他方法一起工作,但到目前为止没有任何工作。
问题是require 未定义,但是在包含<webview>
的html文件中设置了require,因此应该定义。
<webview>
转到一个返回<div>
的网址,该网址使用的是角色。
<div>
中使用的角度控制器不再有效,因为我需要的模块是在文件中设置的第一件事,并且未定义
编辑:
我现在可以看到我在html中设置的属性在应用程序调试器中可见,但它没有出现在webview调试器中。
所以我只能假设父视图没有将值传递给<webview>
。因此,如果有人知道为什么它没有传递价值或我需要做什么来设置它,我将不胜感激任何信息。
答案 0 :(得分:1)
因此,对于当前版本的Electron(0.37.6),设置全局变量的方法是在preload
标记的<webview>
属性上指定预加载脚本。例如,在预加载脚本中:
window['ipcRenderer'] = require('electron').ipcRenderer;
这将允许<webview>
正在显示的访客页面使用ipcRenderer。看起来像我之前使用的方法,即在父视图HTML中设置全局变量,不再起作用了
答案 1 :(得分:0)
这是一种需要电子模块的老方法。这是新的:
var ipcRenderer = require('electron').ipcRenderer;