小编Zac*_*bey的帖子

Babel不处理Array.from或'for ... of'循环

我正在使用带有gulp(.pipe($.babel()))的babel ,它似乎适用于大多数事情,但不适用于Array.from.

它在运行时工作正常babel-node:

$ ./node_modules/babel/bin/babel-node.js
> Array.from
[Function: from]
Run Code Online (Sandbox Code Playgroud)

但是当使用gulp处理以下代码时:

var foo = () => { console.log(Array.from) }
Run Code Online (Sandbox Code Playgroud)

转化的来源是:

var foo = function foo() {
    console.log(Array.from);
};
Run Code Online (Sandbox Code Playgroud)

我执行时的控制台输出foo是:

未定义

babeljs

15
推荐指数
1
解决办法
7427
查看次数

如何最好地将ClientRect/DomRect转换为普通对象

someElement.getBoundingClientRect()返回类型(或显然)的特殊对象的结果ClientRectDomRect

它的结构就像 {top: 10, right: 20, bottom: 30, left: 10, width: 10}

不幸的是,这个对象的行为与其他对象不同.

例如,使用Object.keys它返回一个空数组(我认为因为ClientRect属性不可枚举

我找到了一种转换为普通对象的脏方法:

var obj = {}
for (key in rect) {
  obj[key] = rect[key]
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,有更好的方法吗?

javascript dom getboundingclientrect

15
推荐指数
4
解决办法
6150
查看次数

CSS child vs descendent selector

我读到>在css 中使用子选择器()比后代选择器(). For example: p > em相对于p em.

在我看来,我在野外看到的大多数代码都没有利用这一点.

我理解某些情况值得使用其中一种,但总的来说,我是否应该尽可能地利用儿童选择器?或者我应该遵循什么似乎是惯例,并主要依靠后代选择器?

css css-selectors

14
推荐指数
1
解决办法
2667
查看次数

如何用图像替换替换单选按钮?

我想,而不是标准的单选按钮,为每个单选按钮使用不同的图像.对于选定的状态,我希望在图像周围出现边框.

我已经尝试为单选按钮制作图像标签然后隐藏按钮,但这似乎因某种原因而破坏了功能.

我也遇到过这篇文章:http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/我可能会以某种方式扭曲我的目的.

有更简单/更好的方法吗?

html css forms radio-button

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

我可以覆盖RESTClient默认的"HttpResponseException"响应> 399返回代码吗?

我正在使用Groovy RESTClient类为Java WebServices写一些(spock)验收测试我一直在创作.

我遇到的一个挫折就是测试答案......

200 状态很简单:

when:  def result = callServiceWithValidParams()
then:  result.status == 200
Run Code Online (Sandbox Code Playgroud)

但是400+我被迫要么包装,要么默认try-catch测试HttpResponseException那个RESTClient抛出.

when:
    callWithInvalidParams()
then:
    def e = thrown(Exception)
    e.message == 'Bad Request'
Run Code Online (Sandbox Code Playgroud)

这有点好,如果有点令人沮丧......但我想做得更好.

理想情况下,我希望我的测试更像这样(如果你不使用groovy/spock,可能会让人感到困惑)

@Unroll
def "should return #statusCode '#status' Response"()
{
    when:
    def result = restClient.get(path: PATH, query: [param: parameter])

    then:
    result.status == statusCode

    where:
    status         | statusCode | parameter                
    'OK'           | 200        | validParam
    'Bad Request'  | 400        | invalidParam
}
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,"错误请求"案例失败. …

testing groovy rest-client spock

13
推荐指数
2
解决办法
2914
查看次数

如何使用AngularJS从textarea的每一行生成一个数组

我正在尝试创建一个textarea,其输入绑定到JS数组,其中条目对应于文本区域中的每一行.

我一直在尝试使用ngList它的可选参数来指定分隔符.我可以,通过在textarea的每一行之后添加逗号使其与default()一起使用,但我真的不想要求它.

textarea

<textarea ng-model="list"
          rows="5"
          ng-list="\n" >
</textarea>
Run Code Online (Sandbox Code Playgroud)

输入:

test1
test2
test3
Run Code Online (Sandbox Code Playgroud)

生成的输出是 ["test1\ntest2\ntest3"]

我在寻找的是: ["test1","test2",test3"]

Plnkr Demo

angularjs

12
推荐指数
2
解决办法
5023
查看次数

使用命名的立即调用函数表达式(IIFE)而不是注释

在JS代码中使用命名IIFE来描述和分组相关代码的利弊是什么?

我一直在使用这个"模式"来为我的更多程序代码提供结构,这些代码只能在一个地方执行.


(function hideStuffOnInstantiaton(){
    $('oneThing').hide().removeClass();
    $('#somethign_else').slideUp();
    $('.foo').fadeOut();
}());
Run Code Online (Sandbox Code Playgroud)

我觉得这比两者都好:

// hide Stuff on Instantiaton
$('oneThing').hide().removeClass();
$('#somethign_else').slideUp();
$('.foo').fadeOut();
Run Code Online (Sandbox Code Playgroud)

因为随着时间的推移,评论可能会与代码分开,而且评论所适用的行不是很明显

并:

function hideStuffOnInstantiaton(){
    $('oneThing').hide().removeClass();
    $('#somethign_else').slideUp();
    $('.foo').fadeOut();
};

hideStuffOnInstantiaton();
Run Code Online (Sandbox Code Playgroud)

因为如果它只在一个地方执行,为什么要分开函数及其执行?


使用此模式时是否存在任何性能,可维护性,可测试性或跨浏览器注意事项?我不相信我已经看到很多人在野外使用它但我觉得它可能非常有用

javascript maintainability comments iife

11
推荐指数
2
解决办法
3715
查看次数

facebook发送API错误代码:100 API错误说明:无效参数错误消息:"链接"无效

我使用Facebook发布GRAPH UI发布私人消息,链接到我在facebook的应用程序.之前它工作正常,但从最近两天开始,对话框开始抛出错误:

发生错误.请稍后再试.

API错误代码:100
API错误说明:无效参数
错误消息:"链接"无效.

发送消息我正在使用代码:

function sendMessage(id) {
  FB.ui({
    method : 'send',
    name : 'My APP',
    link : 'https://apps.facebook.com/MY_APP/',
    to : id,
    show_error : 'true',
    description : 'my description'
  });
}
Run Code Online (Sandbox Code Playgroud)

我已经用Google搜索了这一点,我得到的唯一相关信息是Facebook阻止了自己域名的链接以避免垃圾邮件.因为我改变了其他实时网站的链接工作.

我需要发送链接到我的应用程序,因为我必须提供这样的功能.

facebook send

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

为什么grunt-contrib-watch livereload不工作?

我正在努力让Grunt的"实时重新加载"能力(如实现grunt-contrib-watch)在我的应用程序中工作.我终于咬紧牙关,试着做一个最小的例子.希望有人可以很容易地注意到缺少的东西.

文件结构:

??? Gruntfile.js
??? package.json
??? index.html
Run Code Online (Sandbox Code Playgroud)

package.json

{
  "name": "livereloadTest",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.2",
    "grunt-contrib-watch": "~0.5.3"
  }
}
Run Code Online (Sandbox Code Playgroud)

Gruntfile.js

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        watch: {
            src: {
                files: ['*.html'],
                options: { livereload: true }
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-watch');
};
Run Code Online (Sandbox Code Playgroud)

index.html

<!doctype html>
<html>
<head><title>Test</title></head>
<body>

<p>....</p>
<script src="//localhost:35729/livereload.js"></script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后我跑了grunt watch,什么都没.但是,没有浏览器窗口自动打开(应该吗?).

当我在http://localhost:35729/我收到这个json 时打开chrome :

{"tinylr":"Welcome","version":"0.0.4"}
Run Code Online (Sandbox Code Playgroud)

并尝试在该端口上的任何其他路径给我

{"error":"not_found","reason":"no such route"}
Run Code Online (Sandbox Code Playgroud)

gruntjs livereload grunt-contrib-watch

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

我可以用NPM安装Polymer(1.0)吗?

我正在尝试在一个新项目上使用Polymer,并试图避免使用Bower支持NPM进行前端依赖管理.

入门页面提供了使用鲍尔(和使用.zip文件等)的指令,但没有提及防范机制.

我之前通过直接指向GitHub仓库使用了NPM,但我似乎无法让它适用于Polymer.

当我运行这个:

npm install git@github.com:Polymer/polymer.git#v1.0.5
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

错误的ERR!notarget未找到兼容的版本:git@'github.com:Polymer/polymer.git'

错误的ERR!notarget有效的安装目标:

错误的ERR!notarget ["0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.1.5"]

有什么我想念的,或者我需要咬紧牙关并使用Bower?

npm polymer polymer-1.0

10
推荐指数
3
解决办法
8322
查看次数