2016-07-30 11 views
0

私は補間によってjsonから異なる値をレンダリングしようとしていますが、何らかの理由でそれは繰り返しの中でしか動作しません。例えば角2の補間

<ul> 
    <li *ngFor="let object of objects"> 
     {{object.title}} {{object.text}} 
    </li> 
</ul> 

これは動作します。

しかし、私はそれが動作しません反復することなく、特定の値にアクセスしたいとき:

このエラーを取得
{{objects[0].title}} {{objects[0].text}} 

:ORIGINAL例外:例外TypeError:プロパティを読み取ることができません「0」未定義

のどれなぜ起こるのか?

ありがとうございます!

+0

はあなたが私達にあなたのコンポーネントを表示することができますコード? – micronyks

答えて

0

最初にobjectsの値を設定していないと思います。あなたのコードはおそらくこのように見えます。

@Component({ 
... 
}) 
class MyComponent { 
    objects; 
    ngOnInit() { 
     someHttpRequest().then((res) => objects = res); 
    } 
} 

角度成分負荷とすぐobjectsを補間しようとすると、あなたが実際には、そのobjects[0]された後まで、オブジェクトに値を与えていないので、未定義ます。

あなたはカップルの方法でこの問題を解決することができます - おそらく最も簡単なのだろう*ngIf

<div *ngIf="objects && objects.length > 0"> 
    {{objects[0].foo}} 
</div> 
+0

ええ、私は、jsonの応答が外部のAPIから来ていることを知っているので、問題はそのようなものだと思いました。しかし、繰り返しの正しいレンダリングは非常にミスリーディングでした...私はまだそれがどのように機能するのか分かりません。オブジェクトが定義されていない場合は、反復処理内でも定義されていないはずです... とにかく、ありがとう、それは素晴らしい! – cerealex

0

単純な答えで任意のobject[0]参照をラップするだけで、

{{Objects[0]?.title}} {{objects[0]?.text}}