多部分文件上传和ng服务:Angular 2

时间:2016-06-22 16:10:30

标签: javascript typescript angular

我正在处理文件上传服务的前端。我目前忽略了关于后端的服务路径。我遇到了一个奇怪的问题。我有一些生成的组件位于app组件中。当我从控制台结束服务并再次 ng serve 时,它会出错。它说:ng serve error

我发现摆脱这种情况的唯一方法是擦除我的上传服务注入,保存文件,然后重新插入注入。这是它应该看起来的样子: enter image description here

获取服务的唯一方法是删除行私人服务:UploaderService

知道为什么会这样吗?我注射了什么东西?我的UploaderService标记为Injectable(),使用它的组件在Directives下。

更新 我发现它与UploaderService无关。我有一个不注入UploaderService的组件。我修复它与修复注入UploaderService的其他组件的方式相同。通过删除构造函数的参数,保存,然后返回参数。然后它将提供

UPDATE2: 生成的组件upload.component.t有一个用它生成的spec文件, upload.component.spec.ts

它有一个错误,要求提供如下参数:enter image description here

我的UploadComponent构造函数中有一个参数,我注入了UploaderService。在spec.ts文件中,创建了一个新的UploadCompent,但不包含任何参数。我猜这是我出错的地方。我该如何解决这个问题?

这是我的UploaderService:

import { Injectable } from '@angular/core';
import {Http, Response, HTTP_PROVIDERS, Headers, HTTP_BINDINGS, RequestOptions} from '@angular/http';

import { Observable } from 'rxjs/Observable';

import 'rxjs/Rx';

import { ItemEntryComponent } from './item-entry';
import { Query } from './Query';


@Injectable()
export class UploaderService {
  public URL: string;
  private query: Query;
  public filesSelected: Array<ItemEntryComponent> = [];

  progress$: any;
  progress: any;
  progressObserver: any;

  //CONSTRUCTOR
  constructor(private http: Http) {

    //***SET URL***
    this.URL = 'http://localhost:7547/api/picker';
    //Create Query for url
    this.query = new Query(this.URL);

    //Create progress attribute
    this.progress$ = Observable.create(observer => {
      this.progressObserver = observer
    }).share();
  }
}

1 个答案:

答案 0 :(得分:0)

问题解决了!

我没有意识到生成的文件包含规范测试文件,在我的示例中它是 upload.component.spec.ts 。摆脱这些文件摆脱了要求在测试文件中填充参数的错误,现在ng服务工作。