小编Let*_*ion的帖子

如何在本地存储(或其他地方)中保留ES6地图?

var a = new Map([[ 'a', 1 ]]);
a.get('a') // 1

var forStorageSomewhere = JSON.stringify(a);
// Store, in my case, in localStorage.

// Later:
var a = JSON.parse(forStorageSomewhere);
a.get('a') // TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)

不幸的是JSON.stringify(a);简单地返回'{}',这意味着当恢复时它变成一个空对象.

我发现es6-mapify允许在Map和普通对象之间进行向上/向下转换,因此这可能是一个解决方案,但我希望我只需依靠外部依赖来持久保存我的地图.

javascript json dictionary ecmascript-6

61
推荐指数
5
解决办法
1万
查看次数

如何将"提交"从"无分支"移动到实际分支?

我犯了一个错误,并开始提交"到最后一个标签",它将我的提交放在"无分支"中.它们本应应用于现有分支机构的负责人.我还没有推动我的改变.我发现了一些其他问题,当提交在错误的分支中时,但现在我没有分支,所以我不知道如何处理这个问题.

最好,我想完全抹去我的错误,并将我的更改"移动"到右分支的末尾.如果我必须在历史中留下我的错误,我需要至少合并它们.

git merge branch commit git-branch

38
推荐指数
4
解决办法
3万
查看次数

在apache配置中检测Apache版本?

tl; dr:如何在.conf或.htaccess文件中执行以下操作:

<IfApache22>
  # Do A
</IfApache22>
<IfApache24>
  # Do B
</IfApache24>
Run Code Online (Sandbox Code Playgroud)

更长的问题:

在Apache 2.4中,旧的Order被弃用而不是Require.

在我的.htaccess文件中

<FilesMatch "\.(long|list|file|types)$">
  Order allow,deny
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

这意味着除非启用access_compat,否则Apache无法启动.虽然这样做提供了一个有用的解决方法,但我想要一个适用于这两种语法的解决方案,因为配置将分发给许多服务器.问题是如何检测Apache的当前版本并应用正确的指令.

我打算将该文件用于许多人分发和使用的框架,我无法控制/保证他们有或没有任何特定的服务器设置,这就是为什么我希望文件是2.2/2.4"不可知论".

apache .htaccess

21
推荐指数
3
解决办法
5898
查看次数

使用Composer自动加载器进行自定义代码管理?

我已经开始了一个新项目,我使用Composer来处理一些依赖项,以及它们的自动加载.

我只将composer.json文件保存在VCS中,而不是整个供应商目录中,所以我不想开始在那里添加我的代码.

我应该如何处理我自己的项目特定代码,以便它自动加载?

php composer-php

21
推荐指数
1
解决办法
9068
查看次数

由于"EBADF",Node.js,dgram.setBroadcast(flag)失败

我正在使用Node.js 0.6.9,我正在尝试发送数据报广播包.码:

var sys = require('util');
var net = require('net');

var dgram = require('dgram');
var message = new Buffer('message');
var client = dgram.createSocket("udp4");
client.setBroadcast(true);
client.send(message, 0, message.length, 8282, "192.168.1.255", function(err, bytes) {
  client.close();
});
Run Code Online (Sandbox Code Playgroud)

运行代码:

$ node test.js
node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: setBroadcast EBADF
    at errnoException (dgram.js:352:11)
    at Socket.setBroadcast (dgram.js:227:11)
    at Object.<anonymous> (/home/letharion/tmp/collision/hello.js:25:8)
    at Module._compile (module.js:444:26)
    at Object..js (module.js:462:10)
    at Module.load (module.js:351:32)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:482:10)
    at EventEmitter._tickCallback …
Run Code Online (Sandbox Code Playgroud)

node.js

16
推荐指数
2
解决办法
7401
查看次数

我的数组以什么方式索引'非法字符串偏移'?

当通过在PHP 5.4上测试它的"面向未来"代码时,我得到一个我不明白的警告.

function __clone() {
  $this->changed = TRUE;
  foreach ($this->conditions as $key => $condition) {
    if (
    $condition['field']
    instanceOf QueryConditionInterface) {
      $this->conditions[$key]['field'] = clone($condition['field']);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我爆发了$condition['field']自己的行来减少要关注的代码量.关于那条特定的行,PHP就是这么说的

警告:非法串偏移'field'DatabaseCondition->__clone()

而我只是看不出'field'是一个非法的字符串偏移.我猜我只是遗漏了一些明显的东西,但如果社区找不到问题,我会提交错误报告.

我将警告解释为" 在任何情况下'字段'都是有效密钥 ".如果我曾尝试过将数组作为键,那么这个错误就有意义了.

php

7
推荐指数
1
解决办法
2万
查看次数

恢复坏分支合并

我将我的分支合并为主人,推了推,认为一切都很顺利.原来代码有问题,我想要一种方法来恢复合并提交,或整个分支,以更合适的方式,以便其他人可以轻松地继续工作,就好像我的合并从未发生过.

然后我打算修复我的分支,然后再将它合并.阅读man git-revert表明,如果我使用-m来恢复整个分支,我将能够重新合并.

git

7
推荐指数
1
解决办法
3148
查看次数

将UTF-8编码的字符串插入UTF-8编码的mysql表失败,并显示"字符串值不正确"

将UTF-8编码的字符串插入UTF-8编码表会产生不正确的字符串值.

PDOException:SQLSTATE [HY000]:常规错误:1366字符串值不正确:'\ xF0\x9D\x84\x8E i ...'第1行的列'body_value':INSERT INTO

我有一个 character, in a string that mb_detect_encoding claims is UTF-8 encoded. I try to insert this string into a MySQL table, which is defined as (among other things) DEFAULT CHARSET=utf8

编辑: Drupal总是SET NAMES utf8使用可选项COLLATE(至少在与MySQL交谈时).

编辑2:一些看似相关的细节.我从PostgreSQL数据库中获取了一些文本.我将它粘贴到一个对象上,使用mb_detect_encoding验证它是UTF-8,并使用node_save将对象持久保存到数据库.因此,虽然存在触发导入的HTTP请求,但数据不是来自浏览器.

编辑3:数据在两个表上非规范化:

SELECT character_set_name FROM information_schema.COLUMNSC WHERE table_schema ="[database]"AND table_name IN("field_data_body","field_revision_body")AND column_name ="body_value";

>+--------------------+
| character_set_name |
+--------------------+
| utf8               |
| utf8               |
+--------------------+
Run Code Online (Sandbox Code Playgroud)

编辑4:这个角色可能是"新的"吗?我对unicode和UTF-8之间的关系有点模糊,但这篇 …

php mysql drupal

7
推荐指数
2
解决办法
2万
查看次数

检测点击是否在反应组件内是否在打字稿中

我大致有以下几点:

componentDidMount() {                                                                                                                                                                                           
  document.querySelector('body')!.addEventListener('click', this.click);
} 

click = (e: Event) => {                                                                                                                                                                                         
  if (this.state.toggled) {
    if (!ReactDom.findDOMNode(this.someRef).contains(e.target)) {
      this.setState({ toggled: false });
    }
  }
};

render() {
  return (<CustomElement
    ref={(e) => { this.someRef = e; }}                                                                                                                                                                   
  />)
}
Run Code Online (Sandbox Code Playgroud)

此代码正确检测用户是否在CustomElement内部或外部单击,到目前为止一切顺利.

但是,tsc对此并不满意:

error TS2345: Argument of type 'EventTarget' is not assignable to parameter of type 'Node'.
  Property 'attributes' is missing in type 'EventTarget'.
Run Code Online (Sandbox Code Playgroud)

综观node_modules/typescript/lib/lib.d.ts这是有意义的,因为e.targetEventTarget它似乎仅限定用于添加和移除事件处理程序的功能.但是,MDN表示e.target是"对调度事件的对象的引用".这听起来更接近我想要的.

那么如何保持当前正在运行的功能,同时使tsc满意(而不是仅仅消除错误)?

javascript typescript

7
推荐指数
3
解决办法
2537
查看次数

如何在严格模式下设置元素样式属性?

鉴于:

body = document.getElementsByTagName('body')[0];
iframe = document.createElement('iframe');
iframe.src = protocol + settings.scriptUrl + a;
iframe.height = 1;
iframe.width = 1;
iframe.scrolling = 'no';
iframe.frameborder = 0;
iframe.style = 'display:none';
body.appendChild(iframe);
Run Code Online (Sandbox Code Playgroud)

我在使用严格模式在Safari中测试时看到TypeError: Attempted to assign to readonly property.了这一点iframe.style =.

虽然可能需要一个setter或类似的东西.style,我似乎无法找到任何关于这是一个要求的信息,我也无法找到我应该做什么的建议.

一些搜索引导我到CSSStyleDeclaration.setProperty(),这可能是我想要的,但我不确定.即使这是正确的事情,我仍然没有找到关于哪个浏览器支持这个的任何信息; 或者如何确保它在有/没有严格模式和新/旧浏览器中都有效.

javascript css

5
推荐指数
1
解决办法
3806
查看次数