小编jam*_*mes的帖子

ES6模块:导出单类静态方法或多个单独方法

我正在使用ECMAScript6模块.从以下选项中导出/导入模块中的多个方法的正确方法是什么?

单类静态方法:

//------ myClass.js ------

export default class myClass {

  static myMethod1() {
    console.log('foo'); 
  }

  static myMethod2(args...) {
    console.log('bar'); 
  }  

}

//------ app.js ------

import myClass from 'myClass';
myClass.myMethod1();    //foo
Run Code Online (Sandbox Code Playgroud)

多种导出方法:

//------ myMethods.js ------

export function myMethod1() {
    console.log('foo');
}

export function myMethod2() {
    console.log('bar');
}

//------ app.js ------
import {myMethod1, myMethod2} from 'myMethods';
myMethod1()    //foo;


//OR
import * as myMethods from 'myMethods';
myMethods.myMethod1()    //foo;
Run Code Online (Sandbox Code Playgroud)

1)导出:一类只是静态方法感觉有点"代码味道",但同样单独导出所有内容确实感觉有点冗长.它只是开发人员偏好还是存在性能影响?

2)导入:'*as'语法是我首选的方法,因为它允许您使用点符号(引用模块和方法)帮助代码可读性.当我可能只使用其中一种方法时,这是否有性能影响?

javascript module class ecmascript-6

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

Grunt在usemin块中包含bower_components

我的index.html页面中有以下块.

<!-- build:css(.tmp) styles/style.css -->
    <link rel="stylesheet" href="bower_components/normalize-css/normalize.css">
    <link rel="stylesheet" href="styles/main.css">
<!-- endbuild -->
Run Code Online (Sandbox Code Playgroud)

css文件在我的app结构中正确存在,但是当我运行'grunt build'时,只有styles/main.css中的CSS包含在生成的styles/style.css文件中.

我想我需要告诉Grunt在bower_components目录中查找CSS文件?但我不确定该怎么做?

下面我的gruntfile.js的副本......

    grunt.initConfig({
      yeoman: yeomanConfig,
      watch: {
        styles: {
          files: ['<%= yeoman.app %>/styles/{,*/}*.css'],
          tasks: ['copy:styles', 'autoprefixer']
        },
        livereload: {
          options: {
            livereload: LIVERELOAD_PORT
          },
          files: [
            '<%= yeoman.app %>/{,*/}*.html',
            '.tmp/styles/{,*/}*.css',
            '{.tmp,<%= yeoman.app %>}/scripts/{,*/}*.js',
            '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
          ]
        }
      },
      autoprefixer: {
        options: ['last 1 version'],
        dist: {
          files: [{
            expand: true,
            cwd: '.tmp/styles/',
            src: '{,*/}*.css',
            dest: '.tmp/styles/'
          }]
        }
      },
      connect: {
        options: { …
Run Code Online (Sandbox Code Playgroud)

css gruntjs bower

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

拦截XMLHttpRequest并修改responseText

我正在尝试构建一个脚本,它将充当本机XMLHttpRequest对象的代理/包装器,使我能够拦截它,修改responseText并返回原始的onreadystatechange事件.

上下文是,如果应用程序尝试接收的数据已在本地存储中可用,则中止XMLHttpRequest并将本地存储的数据传递回应用程序成功/失败回调方法.假设我无法控制应用程序现有的AJAX回调方法.

我原本试过以下想法..

var send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(data){
   //Do some stuff in here to modify the responseText
   send.call(this, data);
};
Run Code Online (Sandbox Code Playgroud)

但正如我现在所建立的那样,responseText是只读的.

然后我尝试退后一步,编写自己的完整本机代理XMLHttpRequest,最终编写自己的本机方法版本.与此处讨论的相似......

http://www.ilinsky.com/articles/XMLHttpRequest/#implementation-wrapping

但它很快就变得混乱,并且仍然难以将修改后的数据返回到原始onReadyStateChange方法中.

有什么建议?这甚至可能吗?

javascript ajax xmlhttprequest

11
推荐指数
1
解决办法
7659
查看次数

jQuery验证submitHandler触发验证

当使用jQuery submitHandler方法时,我将表单数据通过ajax发布到服务器.成功时,会调用另一个方法来调整弹出窗口的大小并通知用户其全部完成.

然而,我的问题是,在发布数据时,表单再次得到验证,从而导致不良影响.

我的理解是submitHandler不应该再次触发验证?

submitHandler: function(form) {
    console.log('test');
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,"test"被记录到控制台,但验证再次运行(在这种情况下,对电子邮件地址字段进行服务器端有效性检查).

我正在使用按钮类型提交作为表单元素.我是否需要防止默认或类似的事情?

validation jquery

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

手动引导/初始化时访问Angular服务

Angular被引导之前,是否可以访问工厂服务的方法,类似于下面的代码?

我需要在Angular启动之前创建一些AJAX请求,以便设置许多全局应用程序变量.我本来希望保留这个逻辑和/或将响应存储在Angular服务中,并返回一个承诺......

<script src="scripts/app.js"></script>
<script src="scripts/factories/app.js"></script>

<script>
    angular.element(document).ready(function() {

        factoryName.startup().then(function() {
            angular.bootstrap(document, ['MyApp']);
        }, function(err) {
            console.log(error fetching bootstrap data);
        }

    });
</script>
Run Code Online (Sandbox Code Playgroud)

是否有其他方法可用于获得类似的行为?

javascript angularjs

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