javascript - 无法访问在 Electron ipcRenderer 中实现的 Angular $scope 变量

标签 javascript angularjs electron

我正在尝试从像这样的 Angular Controller 下实现的 ipcRenderer 访问 $scope 变量

angular
        .module('app',[])
        .controller('inputsController',function ($scope){

            var ipcRenderer = require("electron").ipcRenderer;
                ipcRenderer.on('my-Response',function(event,data){
                    $scope.inputs = data;
                });
                $scope.test = 'some value';
                console.log('test value : ' + $scope.test); //prints some valuee
                console.log('inputs value : ' + $scope.inputs);// undefined
        });

在 html 页面中,我试图像这样访问 $scope 数据:

<body ng-app="app">
    <div ng-controller="inputsController" class="container">
        test: {{test}}
        inputs: {{inputs}}
    </div>
</body>

日志结果显示 $scope.inputs 的值未定义,因此该值未在页面中绑定(bind)。

我最初的想法是,既然我们可以从 Controller 获得 $scope(作为参数注入(inject)),我们应该能够使用它来附加值,例如 $scope.input,然后将其绑定(bind)到页面中。然而,这似乎并不像预期的那样表现。

我在这里遗漏了什么,或者我在 Angular Controller 中安装 ipc 的方法是错误的吗?请建议....

最佳答案

事件字段在angular的范围之外,你可以这样做:

var ipcRenderer = require("electron").ipcRenderer;
            ipcRenderer.on('my-Response',function(event,data){
                $timeout(function(){
                     $scope.inputs = data;
                }, 0);
            });

关于javascript - 无法访问在 Electron ipcRenderer 中实现的 Angular $scope 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36172713/

相关文章:

javascript - 是否可以从 web 到 electron 调用 main.js 文件中的函数?

html - 如何在 Electron 浏览器上加载嵌入在 iFrame 中的 PDF 文件

javascript - 使用 rxjs ReplaySubject 在两个组件之间共享数据的正确方法是什么?

javascript - 逻辑运算符之前的字符串不会显示在alert()中

angularjs - 监听器过多且 $compile 速度较慢,需要性能提示或介于双向绑定(bind)和一次性绑定(bind)之间的其他内容

javascript - AngularJS 的单对象模型

angularjs - 带有 ng-repeat 和单选按钮的 Angular JS 表

Javascript 使用 async/await 传递/链接 Promise

javascript - 在忽略文字的换行符处拆分模板字符串\n

javascript - Node/Electron : stream pushes too many messages to child process