我最初使用电子稳定(4.xx),并且能够require在我的浏览器和渲染器过程中使用。我升级到电子beta(5.0.0),因为我需要较新版本的node并在渲染器过程中遇到此错误消息Uncaught ReferenceError: require is not defined。
谷歌浏览电子文档,我发现有评论说该错误可能是由webPreferences.nodeIntegration初始化BrowserWindow; 时设置为false 引起的。例如:new BrowserWindow({width, height, webPreferences: {nodeIntegration: false}});。但是我没有这样做,所以我认为还有其他问题,并继续寻求解决方案。
以前,我会使用旧的约定,即使用_后缀或前缀来命名私有字段。
class X{
constructor() {
this.privateField_;
}
privateMethod_() {}
}
Run Code Online (Sandbox Code Playgroud)
现在,通过该符号可以实现真正的私有可访问性#,我已经使用过它们了一些。
class X{
#privateField;
#privateMethod() {}
}
Run Code Online (Sandbox Code Playgroud)
但我遇到的一种情况是在调试时需要访问这些私有成员。但是当然,它们是私有的,所以我不能,除非我编写一些仅调试的包装器/访问器,如果我事先不知道需要调试哪些字段/类,那么这是不切实际的。通过_命名约定,很容易故意绕过。
使用 chrome 开发控制台时,有没有办法绕过 private 修饰符,就像它允许您在块await之外使用一样async?
javascript private private-members google-developers-console class-fields
我正在尝试使用 Node 的本机https模块和第 3 方axios模块(非常常用)执行 GET 请求:
const endpoint = 'https://www.pathofexile.com/api/trade/data/stats';
require('axios')
.get(endpoint)
.then(response => console.log('axios', response.status));
// prints 200
require('https')
.get(endpoint, {},
response => console.log('https', response.statusCode));
// prints 403
Run Code Online (Sandbox Code Playgroud)
该axios请求按预期正常工作;response.data我也可以查看。但https请求失败并返回 403。
curl从命令行也可以正常工作。由于https曾经工作过,我的预感是服务器一定已经改变了一些东西,并且https.get必须axios.get做一些稍微不同的事情(例如默认发送不同的标头),而服务器不再对此漠不关心。
假设我们有一个简单的前端和(如果需要的话,假设Angular)和一个后端应用程序。假设前端应用发出了get请求。通常,角度存储库发出一个$http.get请求,该请求返回一个承诺(角度1)或一个可观察到的可转换为承诺的对象(角度2或4),然后该存储库返回该承诺。然后,角度服务看起来像
repository.makeTheGetCall().then(function (response) {
// process response
});
Run Code Online (Sandbox Code Playgroud)
通常没关系。
1)但是,如果服务上的所有逻辑都依赖于此1调用怎么办?然后,我们实质上将整个服务嵌套在.then子句中。
2)或者,如果根据第一个Get请求的响应,我们又发出另一个请求。然后根据该响应,发出另一个请求,依此类推。然后,我们将束缚一堆then子句。
两种情况似乎都不罕见,并且两种情况都导致看起来“丑陋”的代码。是否可以使用其他实践来允许异步调用,而不必从存储库层向服务层返回promise?
谢谢 :)
javascript asynchronous repository-pattern promise angularjs
基本上,我希望能够将ng-model从父指令传递给子指令.我可以只使用双向绑定值,但是后来我无法在子元素的父指令中使用ng-change.我也可以使用ng-click,但这不适用于非单击更改(例如文本区域而不是复选框).所以我想知道是否有一种方法允许自定义指令具有类似于输入,按钮,文本区域和其他html元素的ng-model/ng-change对.我想避免使用emits,ons,watch,传递回调等.我只是希望能够在自定义指令而不是输入上执行[input type ="checkbox"ng-model ="ngModel"].
父模板
<child ng-model="x" ng-change="x()"></toggle>
Run Code Online (Sandbox Code Playgroud)
家长指令
$scope.x = function() {console.log('hi')};
Run Code Online (Sandbox Code Playgroud)
儿童模板
<div>
<input type="checkbox" ng-model="ngModel">
</div>
Run Code Online (Sandbox Code Playgroud)
儿童指令?
$scope.ngModel = $element.controller('ngModel');
Run Code Online (Sandbox Code Playgroud)
我的角度版本是1.4.8 btw.
谢谢 :)
angularjs angularjs-directive angularjs-ng-change angularjs-ng-model angularjs-components
javascript ×4
angularjs ×2
node.js ×2
asynchronous ×1
axios ×1
class-fields ×1
electron ×1
private ×1
promise ×1
require ×1