2016-12-01 99 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

相关问题