私はobservableを使用してデータベースからオブジェクトを抽出しようとしています。私はオブジェクトを取得し、変数の中に入れた後、オブジェクト全体をテンプレートに入れることができ、オブジェクトの特定のフィールドにアクセスしようとすると、エラーが発生します。Angular2で観測可能なオブジェクトのアクセスフィールド
ここに私の望むタイプの観測可能なものを返す関数があります。これは、基本的にはデータベース内を検索し、そのURLは私のURL変数に等しいItemオブジェクトのリストを返します:私の主成分で、私はリストを取るためにこの機能を使用して、私が最初に入れ、
getItemByUrl(url : string):Observable<Item[]>{
return this.angularFire.database.list('items',{query:{
orderByChild: 'url',
equalTo: url}
})
今私自身の項目オブジェクトにリストの項目なので、私は自分のプログラムでそれを使用することができます。
ngOnInit(){
this.itemService.getItemsByUrl(this.url)
.subscribe(res => this.item = res[0])
}
今私はテンプレートに自分のアイテムを渡す:
{{item | json}}
とすべてがうまく、私ですのオブジェクト全体。しかし、すぐに、私は、このような{{item.name}}などのアイテム内のフィールドにアクセスしようとして、私はエラーを取得する:
Cannot read property 'name' of undefined
任意のアイデアなぜですか?
てみ '項目.name' – Alex
' item.name'がitem'は '一度のみ利用可能ですので、? JSONパイプはそれを許容するように設計されています。 – jonrsharpe
[Observable type error:未定義のプロパティを読み取れません](http://stackoverflow.com/questions/34734671/observable-type-error-cannot-read-property-of-undefined)の可能な複製 – jonrsharpe