Javascript 从WebContent访问数据。在Angular Controller中发送(..)

Javascript 从WebContent访问数据。在Angular Controller中发送(..),javascript,angularjs,electron,Javascript,Angularjs,Electron,我对Electron还很陌生,目前正在构建一个小应用程序,该应用程序重用我不久前构建的Angular应用程序中的一些代码 下面是我试图做的:我有一个主浏览器窗口(其中充满了我使用angular访问的Web服务中的数据),当用户单击其中一个按钮时,我想打开另一个浏览器窗口并在其中显示一些数据(数据与用户单击的内容相关)。我知道了如何打开另一个浏览器窗口,以及如何向它传递一些参数,请参见下面的代码示例 此代码在用户单击按钮时执行,将打开一个新的浏览器窗口 const BrowserWindow=r

我对Electron还很陌生,目前正在构建一个小应用程序,该应用程序重用我不久前构建的Angular应用程序中的一些代码

下面是我试图做的:我有一个主浏览器窗口(其中充满了我使用angular访问的Web服务中的数据),当用户单击其中一个按钮时,我想打开另一个浏览器窗口并在其中显示一些数据(数据与用户单击的内容相关)。我知道了如何打开另一个浏览器窗口,以及如何向它传递一些参数,请参见下面的代码示例

此代码在用户单击按钮时执行,将打开一个新的浏览器窗口

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(); } //调用初始化 初始化();
})这似乎不起作用,但我只花了几分钟时间来摆弄它。我下班回家后会再调查一些。我今天晚些时候会更新。当然,让我知道您的进度。记住将视图中的参考从
数据
更改为
模型。数据