Ionic serve - 需要手动保存app.module.ts才能正常工作

时间:2017-10-25 12:11:40

标签: typescript ionic-framework visual-studio-code ionic3

我们有一个离线项目,几页和一个自定义提供商。 提供者是request.ts,如下所示。问题是每次我们发布:离子服务--lab。编译实际上会失败(错误指向来自request.ts的http.post中的头文件),然后我们必须手动进入app.module.ts文件并保存它。然后一切都开始正常。

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';

import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';

@Injectable()
export class RequestProvider {

  constructor(public http: Http) {
    console.log('Hello RequestProvider Provider');
  }

  getSomeResponce(callBack) {
    this.http.post(
      "some.domain.net/some/service",
      { "argument1": "1", "argument2": "2"},
      { headers: { "Content-Type" : "application/json" } }
    ).toPromise()
    .then(res => callBack(res));
  }
}

app.module导入提供者:

import { RequestProvider } from '../providers/request/request';

这是我们第一次发布时遇到的错误:

  

Typescript Error类型'{headers:{“Content-Type”的参数:   串; }; }'不能赋值给类型的参数   'RequestOptionsArgs'。属性“标题”的类型不兼容。   输入'{“Content-Type”:string; }'不能分配给类型   “头”。对象文字只能指定已知属性,和   “内容类型”'在“标题”类型中不存在。

虽然问题不大,但这是一个烦恼,我担心它可能表明未来会有更大的问题。

1 个答案:

答案 0 :(得分:0)

这是使用自定义http标头的正确方法

import { Http, Headers } from '@angular/http'; // import Headers

headers: Headers = new Headers(); // init variable headers

this.headers.set('Content-Type', 'application/json'); // set header

this.http.post(url, data, {headers : this.headers}) // use it in your request