2017-09-22 34 views
0

私は2角度にかなり新しいです、私は何を達成しようとしていることは簡単です:角度2呼び出しAPI

  1. カテゴリID
  2. コールAPIをルーティングを経由して渡されたカテゴリIDを取得します。データと
  3. 移入変数「カテゴリ」はAPIから返されると、カテゴリ名を表示

私の見解は単純です:

<h3>{{category.name}}</h3> 

コンポーネントコード:

import { Component, Inject } from '@angular/core'; 
import { Http } from '@angular/http'; 
import { ActivatedRoute } from '@angular/router'; 
@Component({ 
    selector: 'browse-category', 
    template: require('./browse-category.component.html'), 
    styles: [require('./browse-category.component.css')] 
}) 
export class BrowseCategoryComponent { 
    products: IProduct[]; 
    category: ICategory; 
    categoryId: number; 
    constructor(private route: ActivatedRoute, private http: Http, @Inject('ORIGIN_URL') private originUrl: string) { 

    } 

    ngOnInit(): void { 
     this.route.params.subscribe(params => { 
      this.categoryId = +params['categoryId']; 
      // get category details 
      this.http.get(this.originUrl + '/api/Category/' + this.categoryId).subscribe(result => { 
       var data = result.json().data; 
       if (data != null && result.status === 200) { 
        this.category = data; 
        console.log(this.category); 
       } 
      }); 
     }); 
    } 
} 

私がいない場合、私はビューの出力を無効にした場合、私はにconsole.log出力を見ることができています、私は次のエラーを取得する:

NodeInvocationException:キャッチされませんTypeError:未定義の 'name'プロパティを読み取ることができません TypeError:未定義の 'name'プロパティを読み取ることができません

約束がまだ返されていないと思われます。理想的にはこれを修正する最良の方法は何ですか?

+0

console.log出力とは何ですか? – jhenderson2099

答えて

1

使用{{category?.name}}これは「安全なナビゲーション」演算子と呼ばれ、角が定義されていてnullでない場合にのみカテゴリにアクセスしようとします。

+0

Elvis演算子は実際に '?:'です。これは["安全なナビゲーション"演算子](https://angular.io/guide/template-syntax#expression-operators)です。 – jhenderson2099

+0

ありがとうございました。 – ronenmiller

関連する問題