相关疑难解决方法(0)

我什么时候应该在ECMAScript 6中使用箭头功能?

这个问题针对的是那些在即将到来的ECMAScript 6(Harmony)背景下已经考虑过代码风格并且已经使用过该语言的人.

有了() => {}function () {}我们有两种非常相似的方法来编写ES6中的函数.在其他语言中,lambda函数通常通过匿名来区分自己,但在ECMAScript中,任何函数都可以是匿名的.这两种类型中的每一种都具有唯一的使用域(即,当this需要明确地绑定或明确地不绑定时).在这些域之间存在大量的情况,其中任何一种符号都可以.

ES6中的箭头功能至少有两个限制:

  • 不要工作 new
  • 固定this在初始化时限制范围

抛开这两个限制,箭头函数理论上几乎可以在任何地方替换常规函数.在实践中使用它们的正确方法是什么?是否应使用箭头功能,例如:

  • "他们工作的每个地方",即在任何地方,函数不必对this变量不可知,我们不创建对象.
  • 只有"需要的任何地方",即事件监听器,超时,需要绑定到某个范围
  • 具有'短'功能但不具有'长'功能
  • 仅适用于不包含其他箭头功能的功能

我正在寻找的是在ECMAScript的未来版本中选择适当的函数符号的指南.该指南需要明确,以便可以向团队中的开发人员讲授,并保持一致,这样就不需要从一个函数符号到另一个函数符号进行不断的重构.

javascript lambda ecmascript-harmony ecmascript-6 arrow-functions

379
推荐指数
6
解决办法
8万
查看次数

Angular 4 - 上传CSV

我正在制作一个Angular4我有一个按钮,可以将数据转换为带有标题的csv文件.现在我想反过来做,我想上传一个csv文件.因此,为了进行测试,我创建了一个对象并从中创建了一个csv文件,然后我想单击一个按钮并上传该文件并获得相同的结果.

我找到了一个导出csv的角度模块,但我找不到一个相反的方法.有人可以帮助我吗?

这是我的代码:

test.ts

import { Component, OnInit} from '@angular/core';
import { Angular2Csv } from 'angular2-csv/Angular2-csv';
import {Unit} from "../../../_shared/unit";

@Component({
  moduleId: module.id,
  templateUrl: 'test.component.html',
  styleUrls: ['./test.css']
})


export class TestComponent implements OnInit {



  ngOnInit() {}

  public export() {
    // Unit (id,name,description)
    var data = [new Unit(1,"Unit1","This is unit 1!")];

    var options = {
      fieldSeparator: ';',
      quoteStrings: '"',
      decimalseparator: ',',
      showLabels: true,
      useBom: true
    };
    new Angular2Csv(data, "data", options);
  }

  public import(){}

}
Run Code Online (Sandbox Code Playgroud)

的test.html

<button (click)="export()">Download CSV</button>
<button (click)="import()">Upload CSV</button>
Run Code Online (Sandbox Code Playgroud)

html csv json typescript angular

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

Angular 4.x + Cordova:FileReader无声地失败(白屏死机)

我有一个Angular 4.3 + Cordova应用程序,以前工作得很好.但现在,我在应用启动时出现了一个空白屏幕,没有任何事情发生.

经过一段时间的挖掘,我意识到它的来源:

我的主页受到保护的保护,该CanActivate保护将检查一些文件系统持久化的首选项,并将用户重定向到另一个页面(如果这是第一次运行或缺少必需的首选项),以填写所需的属性.

所以应用程序的推出取决于我的CanActivate后卫,这取决于我PreferenceService自己取决于FileSystemService我自己实现的.问题是当我尝试读取存储用户首选项的文件时,没有触发单个回调,没有任何反应,甚至没有错误.

这是我的一部分FileSystemService失败没有任何错误:

read(file: FileEntry, mode: "text" | "arrayBuffer" | "binaryString" | "dataURL" = "text"): Observable<ProgressEvent> {
    return this.cdv.ready.flatMap(() => {
        return Observable.create(observer => {
            file.file(file => {
                let reader = new FileReader();
                reader.onerror = (evt: ErrorEvent) => {
                    this.zone.run(() => observer.error(evt)); //never triggered
                };
                reader.onload = (evt: ProgressEvent) => {
                    this.zone.run(() => observer.next(evt)); //never trigerred
                };
                switch (mode) {
                    case "text":
                        reader.readAsText(file); …
Run Code Online (Sandbox Code Playgroud)

filereader cordova zone.js angular

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