2016-12-01 128 views
1

我在Visual Studio 2015中使用ASP.NET Core + Angular 2模板來開發Angular 2應用程序。無法將類型Observable <Object>轉換爲類型Observable <CategoriesData>

在CategoryService上,在嘗試返回Observable時出現錯誤。

enter image description here 這裏是CategoryData:

export class CategoriesData { 
public CategoryID: number; 
public CategoryName: string; 
public Description: string; 
public Picture: string; } 

爲什麼會出現這個錯誤?如果我將返回類型從Observable更改爲Observable,則此錯誤消失。但是,在這種情況下,我的組件中返回的類型是Object而不是CategoryData。

以下是調用服務的CategoryListComponent中的代碼。

enter image description here

爲什麼不能從服務接收到的數據傳輸到objCategories爲CategoriesData?它說「未定義」。

請幫忙!

+1

發佈代碼,不僅僅是代碼的圖像。 –

回答

2

這是因爲您尚未說明Http服務調用返回的數據類型。你可以形式化來表述它。

getCategory(): Observable<CategoryData> { 
    return this.http.get(this.url) 
      .map(response => response.json() as CategoryData) 
      .catch(this.handleError); 
} 
+0

感謝您的答覆。我試圖在組件的映射方法中進行類型轉換,但沒有解決。 Visual Studio在服務本身中給出編譯時錯誤。如果我在服務方法中將返回類型更改爲Observable ,則錯誤消失。 – Chirag

+0

Infact,我注意到雖然我返回Observable 組件中的調用方法是從服務接收數據到objCategories中。但主要的問題是它沒有在我的Edit窗體中顯示數據,因爲主模塊中缺少FormsModule導入,並且它不能識別窗體上的綁定。 ([(ngModel)] =「objCategories.CategoryName」)。 – Chirag

相關問題