2016-12-01 12 views
1

に入力してくださいVisual Studio 2015でASP.NET Core + Angular 2テンプレートを使用してAngular 2アプリケーションを開発しています。タイプを変換できませんObservable <Object>をObservable <CategoriesData>

カテゴリサービスでは、Observableを返そうとしているときにエラーが発生しています。ここで

enter image description here CategoryDataです:

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

は、なぜ私はこのエラーを取得していますか?戻り値の型をObservableからObservableに変更すると、このエラーはなくなります。しかし、その場合、私はコンポーネント内のCategoryDataではなくObjectとして戻り値の型を取得します。

以下は、サービスを呼び出すCategoryListComponentのコードです。

enter image description here

なぜそれがCATEGORIESDATAとしてobjCategoriesへのサービスから受信したデータを転送することはできないのですか?それは "未定義"と言います。

助けてください!

+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にデータを受け取っていることに気付きました。しかし、主な問題は、メインモジュールのFormsModuleのインポートが不足しているため、編集フォームにデータが表示されず、フォーム上のバインディングを認識できないことでした。 ([(ngModel)] = "objCategories.CategoryName")。 – Chirag

関連する問題