2017-08-20 81 views
0

我一直在嘗試從節點獲取一個對象數組到onInit並將其分配給組件。我能夠查看服務中的數據,但是當我嘗試分配給組件中的變量時,出現錯誤。我也包含了我的代碼。請在此贊成。我需要的只是從服務中獲取該數組並將其分配給組件中的最終用戶。Property'includes'缺少類型'Subscription'-angular2

ERROR in 

    C:/Users/girija/Documents/animapp/src/app/components/list.component.ts (28,5): Type 'Subscription' is not assignable to type 'any[]'. 
     Property 'includes' is missing in type 'Subscription'. 

我的代碼如下: app.service.ts:

public finallist=[] 
    getList(){ 
      return this.http.get('/api/list').subscribe(data=>{ 
      this.finallist=JSON.parse(data['_body']); 
      return this.finallist; 
     }) 
     } 

app.component.ts:

totallist=[]; 
    ngOnInit() { 
     this.totallist=this.someService.getList(); 

     } 

回答

2

subscribe返回Subscription對象,這不是你要找的東西。

嘗試是這樣的:

app.service.ts

getList(): Observable<any> { 
    return this.http.get('/api/list').map(data => data['_body']); 
} 

app.component.ts

totallist=[]; 

ngOnInit() { 
    this.someService.getList().subscribe(data => this.totallist = data); 
} 
1

你應該使用map運營商的響應轉換進入json類型

getList(){ 
      return this.http.get('/api/list') 
      .map(response=> <Type>response.json()) ///////// 
      .subscribe(data=>{ 
      this.finallist=JSON.parse(data['_body']); 
      return this.finallist; 
     }) 
     } 

注意:<Type>用於嚴格打字

+0

我仍然在這裏得到了同樣的錯誤:| – Gayathri

0

請參閱下面的答案。它向您解釋瞭如何從服務器獲取數據,服務以及最終到組件。 Receiving Jason instead of html。我正在使用mongodB,但您的後端可能會有所不同。希望這可以幫助。