Javascript 从WebContent访问数据。在Angular Controller中发送(..)
我对Electron还很陌生,目前正在构建一个小应用程序,该应用程序重用我不久前构建的Angular应用程序中的一些代码 下面是我试图做的:我有一个主浏览器窗口(其中充满了我使用angular访问的Web服务中的数据),当用户单击其中一个按钮时,我想打开另一个浏览器窗口并在其中显示一些数据(数据与用户单击的内容相关)。我知道了如何打开另一个浏览器窗口,以及如何向它传递一些参数,请参见下面的代码示例 此代码在用户单击按钮时执行,将打开一个新的浏览器窗口Javascript 从WebContent访问数据。在Angular Controller中发送(..),javascript,angularjs,electron,Javascript,Angularjs,Electron,我对Electron还很陌生,目前正在构建一个小应用程序,该应用程序重用我不久前构建的Angular应用程序中的一些代码 下面是我试图做的:我有一个主浏览器窗口(其中充满了我使用angular访问的Web服务中的数据),当用户单击其中一个按钮时,我想打开另一个浏览器窗口并在其中显示一些数据(数据与用户单击的内容相关)。我知道了如何打开另一个浏览器窗口,以及如何向它传递一些参数,请参见下面的代码示例 此代码在用户单击按钮时执行,将打开一个新的浏览器窗口 const BrowserWindow=r
const BrowserWindow=remote.BrowserWindow;
var cubeWindow=新浏览器窗口({宽度:800,高度:600,帧:false});
var cube=path.resolve(_dirname,'../cube.html');
cubeWindow.loadURL(多维数据集);
风险值数据={
id:“1”,
名字:“这个”
};
cubeWindow.webContents.on('did-finish-load',()=>{
cubeWindow.webContents.send('cube-data',data);
})
尝试将多维数据集数据
事件处理程序放入控制器代码中:
angular.module('testApp', [])
.controller('appCtrl', function($scope) {
$scope.model = {
data: null
}
function attachCubeDataHandler() {
require('electron').ipcRenderer.on('cube-data', (event, message) => {
console.log(message);
$scope.model.data = message;
});
}
function initialize() {
attachCubeDataHandler();
}
// Invoke initialization
initialize();
});
这样,您首先初始化控制器,然后在事件响应出现时解析它。此外,如果将代码放入控制器中,则可以直接使用
$scope
更新视图的数据。我用另一个对象(模型
)包装了数据
),以确保视图在数据
对象更改时更新。好的,我想出来了:基于atom.io上的jdfarrior的这一点,我们必须使用一点角度$timeout hack来让事情正常工作。在我将PJDev提供的代码片段更改为以下内容后,它工作了。它现在记录消息的内容,并将其显示在视图(cube.html)中
角度模块('testApp',[])
.controller('appCtrl',['$timeout','$scope',函数($timeout,$scope){
$scope.model={
数据:空
}
函数attachCubeDataHandler(){
require('electron').ipcRenderer.on('cube-data',(事件,消息)=>{
$timeout(函数(){
$scope.model.data=消息;
console.log(“登录超时:+消息”);
},0);
});
}
函数初始化(){
附件cubedatahandler();
}
//调用初始化
初始化();
})这似乎不起作用,但我只花了几分钟时间来摆弄它。我下班回家后会再调查一些。我今天晚些时候会更新。当然,让我知道您的进度。记住将视图中的参考从
数据
更改为模型。数据
。