【问题标题】:Cannot convert type Observable<Object> to type Observable<CategoriesData>无法将 Observable<Object> 类型转换为 Observable<CategoriesData> 类型
【发布时间】:2016-12-01 17:21:44
【问题描述】:

我在 Visual Studio 2015 中使用 ASP.NET Core + Angular 2 模板来开发 Angular 2 应用程序。

在 CategoryService 上,我在尝试返回 Observable 时遇到错误。

这是类别数据:

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

为什么会出现此错误?如果我将返回类型从 Observable 更改为 Observable,这个错误就会消失。但是,在这种情况下,我的组件中的返回类型是 Object 而不是 CategoryData。

下面是 CategoryListComponent 中调用服务的代码。

为什么不能将从服务接收到的数据作为 CategoriesData 传输到 objCategories 中?它说“未定义”。

请帮忙!

【问题讨论】:

  • 也发布代码,不仅仅是代码的图像。

标签: angular asp.net-core


【解决方案1】:

这是因为您没有说明 Http 服务调用返回的数据类型。你可以通过类型转换来声明它。

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

【讨论】:

  • 感谢您的回复。我尝试在组件的 map 方法中进行类型转换,但没有成功。 Visual Studio 在服务本身中提供编译时错误。如果我在服务方法中将返回类型更改为 Observable 那么错误就会消失。
  • 事实上,我注意到虽然我返回 Observable 组件中的调用方法正在从服务接收数据到 objCategories。但主要问题是它没有在我的编辑表单中显示数据,因为主模块中缺少 FormsModule 导入并且它无法识别表单上的绑定。 ( [(ngModel)]="objCategories.CategoryName" ).
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多