类型'any []'上不存在属性'text' - Angular4

时间:2017-10-20 13:00:05

标签: arrays angular text service

我在data.text()收到错误,如下所示。我错过了一些图书馆吗?任何人都可以提供任何建议。谢谢

  

属性'text'在'any []'类型上不存在。'

service.ts

const headers = new HttpHeaders();
        headers.set('Content-Type', 'text/sml');
        headers.set('Accept', 'text/xml');
        headers.set('Content-Type', 'text/xml');

 getData(): Observable<any> {
         return this.http.get<any>(this.urlNorth, { headers })
                .do(data => {
                    data.text().replace('<string xmlns="http://tmmc.regional/pcms/webservice">', '').replace('</string>', '').replace(/&lt;/g, '<').replace(/&gt;/g, '>');
                    parseString(data, (err, res) => {
                        if (err) {
                            return console.dir('invalid XML');
                        }
                        else {
                            console.log(res);
                        }
                    })

                })

component.ts

 export class AppComponent implements OnInit {
  data: any ;
  errorMessage: string;

  constructor(private _appService: AppService) { }

  ngOnInit(): void { this.getData(); }

  getData(): void {
    this._appService.getData()
      .subscribe(
      (data: any) => this.data = data,
      (error: any) => this.errorMessage = <any>error);
  }
}

1 个答案:

答案 0 :(得分:0)

请勿在http-request中使用任何类型(<any []>):

在您的服务中:

return this.http.get(this.urlNorth, { headers }) //删除了类型。

和您的组件

(data: any) => this.data = data, //已删除[]

我在这里使用与您相同的方法添加了一个工作示例,但使用了不同的数据:

https://plnkr.co/edit/29MyR2oPAHtE883AUlFY?p=preview

我正在使用map而不是do,但这是因为我无法让do-operator在plunkr中工作。它应该适用于两者。

我在组件中创建了一个方法(最好在服务中执行此操作):

   getData(): Observable<any> {
    return this.http.get('test.html', {})
      .map(data => return data.text(););
  }

然后在构造函数中:

 this.getData().subscribe(data=>{
      console.log("data",data);
      this.data = data;
    });