OpenLayers.Feature.Vector的API文档说Vector本身根本就没有方法.
我知道如何通过添加OpenLayers.Control.DragFeature控件来映射用户来移动Vector .因此,如果用户可以移动Vector,那么必须以编程方式移动它.但我无法弄清楚该怎么做.
我正在尝试按照angular-eslint Github repo 中的说明将 Angular 项目从 TSLint 切换到 ESLint 。
我跑了ng add @angular-eslint/schematics它在我的 package.json 中添加了以下依赖项:
"@angular-eslint/builder": "1.2.0",
"@angular-eslint/eslint-plugin": "1.2.0",
"@angular-eslint/eslint-plugin-template": "1.2.0",
"@angular-eslint/schematics": "1.2.0",
"@angular-eslint/template-parser": "1.2.0",
"@typescript-eslint/eslint-plugin": "4.3.0",
"@typescript-eslint/parser": "4.3.0",
"eslint": "7.6.0",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-jsdoc": "30.7.6",
"eslint-plugin-prefer-arrow": "1.2.2",
Run Code Online (Sandbox Code Playgroud)
此外,运行npm install以确保这些都已安装。
现在我被指示运行:
ng g @angular-eslint/schematics:convert-tslint-to-eslint --remove-tslint-if-no-more-tslint-targets --ignore-existing-tslint-config
Run Code Online (Sandbox Code Playgroud)
但是,这会导致错误:
Unknown option: '--remove-tslint-if-no-more-tslint-targets'
Unknown option: '--ignore-existing-tslint-config'
Run Code Online (Sandbox Code Playgroud)
当我删除这些选项时,我收到另一个错误:
Invalid rule result: Instance of class Promise.
Run Code Online (Sandbox Code Playgroud)
似乎这个 angular-eslint 示意图没有正确安装。但是,我对这些原理图完全是新手。我一定在这里遗漏了一些明显的东西。
使用@angular/cli 10.2.3。
我正在做一些日常的捣蛋,突然发现看似微不足道的东西不起作用:
$ echo T | grep [A-Z]
Run Code Online (Sandbox Code Playgroud)
没有比赛.
为什么T不在AZ范围内?
我改变了正则表达式:
$ echo T | grep [A-Y]
Run Code Online (Sandbox Code Playgroud)
一场比赛!
哇!如何在AY内,但不在AZ内?
显然这是因为我的环境设置为爱沙尼亚语区域,其中Y位于字母表的末尾,但Z位于中间位置:ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY
$ echo $LANG
et_EE.UTF-8
Run Code Online (Sandbox Code Playgroud)
这对我来说有点震惊.99%的时候我会用计算机代码,而不是爱沙尼亚文学.我一直在以错误的方式使用grep吗?我过去因此犯过什么样的错误?
在尝试了几件事后,我得出了以下解决方案:
$ echo T | LANG=C grep [A-Z]
Run Code Online (Sandbox Code Playgroud)
这是使grep语言环境独立的推荐方法吗?
更多......定义这样的别名是安全的:
$ alias grep="LANG=C grep"
Run Code Online (Sandbox Code Playgroud)
PS.我也想知道为什么字符范围[A-Z]首先依赖于语言环境,而且\w似乎不受语言环境的影响(尽管手册中说\w的相当于[[:alnum:]]- 但我发现后者依赖于语言环境而\w不是语境环境).
我有一些紧密耦合的遗留代码,我想用测试来覆盖.有时确保在另一个方法之前调用一个模拟方法很重要.一个简化的例子:
function PageManager(page) {
this.page = page;
}
PageManager.prototype.openSettings = function(){
this.page.open();
this.page.setTitle("Settings");
};
Run Code Online (Sandbox Code Playgroud)
在测试中我可以检查两者open()并被setTitle()调用:
describe("PageManager.openSettings()", function() {
beforeEach(function() {
this.page = jasmine.createSpyObj("MockPage", ["open", "setTitle"]);
this.manager = new PageManager(this.page);
this.manager.openSettings();
});
it("opens page", function() {
expect(this.page.open).toHaveBeenCalledWith();
});
it("sets page title to 'Settings'", function() {
expect(this.page.setTitle).toHaveBeenCalledWith("Settings");
});
});
Run Code Online (Sandbox Code Playgroud)
但setTitle()只有在第一次打电话后才能工作open().我想先检查一下page.open(),然后是setTitle().我想写这样的东西:
it("opens page before setting title", function() {
expect(this.page.open).toHaveBeenCalledBefore(this.page.setTitle);
});
Run Code Online (Sandbox Code Playgroud)
但Jasmine似乎并没有内置这样的功能.
我可以破解这样的东西:
beforeEach(function() {
this.page = jasmine.createSpyObj("MockPage", ["open", "setTitle"]);
this.manager = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 puppeteer 渲染页面,提取页面上动态 javascript 变量的名称,并将该变量作为对象返回。我正在使用 puppeteer 和 node.js 来执行此操作。
我能够获取页面上生成的 javascript 变量的名称,但每当我尝试将其打印到控制台时,我都会收到“未定义”错误。我花了早上的大部分时间试图解决这个问题,但我被难住了。这是下面的代码。
const puppeteer= require('puppeteer');
var url = 'https://www.website.com';
async function run () {
try {
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox']
});
const page = await browser.newPage();
await page.goto(url);
const flashVariableName = await page.evaluate( () => {
var start = document.documentElement.innerHTML.indexOf('var flashvariable_') + 'var '.length;
var tempDoc = document.documentElement.innerHTML.substr(start);
var end = tempDoc.indexOf(' =');
return tempDoc.substr(0, end);
});
console.log(await page.evaluate( (flashVariableName) => flashVariableName )); …Run Code Online (Sandbox Code Playgroud) 我想验证一个文本框,它有一些url值,如博客地址或网站地址如何在js中验证此文本框
当我阅读Guido van Rossum的文章"优化轶事"时,它就开始了.
决定在JavaScript中尝试相同的事情,我计时如下:
numbers.map(function(x){ return String.fromCharCode(x); });
Run Code Online (Sandbox Code Playgroud)
这已经非常快了,但为什么不完全消除匿名函数并将String.fromCharCode直接传递给map():
numbers.map(String.fromCharCode);
Run Code Online (Sandbox Code Playgroud)
我把它计时了...... 这比以前的版本慢了约100倍.怎么会?
以某种方式将此本机函数直接传递给Array.map()比将其包装到另一个函数中并将其传递给Array.map()慢得多.
它不是特定于浏览器:在Chrome,Firefox和Opera中测试过.
它不是特定于map():尝试forEach(),其行为类似.
它并不特定于内置函数:尝试过Math.round()和Math.sin() - 这些结果如人们所期望的那样:直接将函数传递给Array.map()比使用中间函数快一点匿名功能.
似乎问题出在String.fromCharCode上.
这里发生了什么?
PS.最初在Hacker News主题中提出了这个问题,但由于相关文章是关于Python的,我认为在发布时会更多地接触JavaScript开发人员.很抱歉交叉发布.
我正在使用react-native 0.59.9(0.60.x由于外部阻止程序,还不能升级到)。
但@types/react-native唯一提供的类型定义高达0.57.65(如 npm 中所列)。从那时起,版本直接跳转到0.60.x. 中的第一行index.d.ts还告诉我中的类型@types/react-native 0.57.65仅支持0.57版本:
// Type definitions for react-native 0.57
Run Code Online (Sandbox Code Playgroud)
@types/react-native 0.57.65到目前为止,我实际上一直在使用react-native 0.59. 但是现在我遇到了一些问题,我开始怀疑这种组合是否应该起作用。
我正在思考的问题:
0.58和0.59发布@types/react-native?react-native 0.59for 类型时是否应该出现问题0.57?0.60?当您使用合成时,您可以模拟测试中的类所依赖的其他对象,但是当您使用继承时,您无法模拟基类.(或者你呢?)
我通常试图更喜欢组合而不是继承,但有时候继承似乎是最好的工具 - 好吧,至少在单元测试之前.
那么,你如何测试继承?或者你只是把它作为不可测试的废物并使用组合而不是?
注意:我主要使用PHP和PHPUnit,因此非常感谢帮助.但是知道在其他语言中是否存在解决这个问题的方法也很有趣.
我正在编写一个应用程序,主要目的是保持用户购买列表.
我想确保即使我作为开发人员(或任何完全访问数据库的人)也无法弄清楚某个人花了多少钱或者他已经购买了什么.
我最初想出了以下方案:
--------------+------------+-----------
user_hash | item | price
--------------+------------+-----------
a45cd654fe810 | Strip club | 400.00
a45cd654fe810 | Ferrari | 1510800.00
54da2241211c2 | Beer | 5.00
54da2241211c2 | iPhone | 399.00
user_hash(可能与盐渍等).如果有足够的用户,通过了解他的名字,几乎不可能知道特定用户花了多少钱.
这是明智的做法,还是我完全愚蠢?
javascript ×5
unit-testing ×2
angular ×1
eslint ×1
grep ×1
hash ×1
inheritance ×1
jasmine ×1
locale ×1
node.js ×1
oop ×1
openlayers ×1
optimization ×1
php ×1
phpunit ×1
puppeteer ×1
react-native ×1
tslint ×1
typescript ×1
url ×1
validation ×1
vector ×1