2016-09-29 9 views
2

でオブジェクトをレンダリングはnullエラー:しかしダーツangular2 - 私のような私のテンプレート何かで書いてみたいテンプレート

<span>{{myObject.myField}}</span> 

myObjectは私のngOnInitに初期化され、そして私のオブジェクトはまだ時にヌルのようです私は私のテンプレートで

<span>{{myObject}}</span> 
を置けば、私は次のようなエラー

NullError: method not found: 'myField' on null 

を持っているので、ページがレンダリングされます

私はmyObjectの値を見ることができます。

OnInitより前にオブジェクトを初期化する方法はありますか?自分のデータを表示する別の方法はありますか?

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

答えて

2

モデルはまだ完全に

が初期化されていない間、あなたはまた、あなたがそれらがレンダリングされるのを防ぐために *ngIfで要素をラップすることができ、エラーを防ぐために、安全なナビゲーション演算子

<span>{{myObject?.myField}}</span> 

を使用することができますモデルはまだ初期化されていません

<span *ngIf="myObject != null">{{myObject.myField}}</span> 

この方法で、大きなブロックまたはテンプレート全体を単一の*ngIfの代わりに?を追加してください。

+0

{ {{myObject?.myField}} 'は完全に動作します。ありがとう! – matth3o

+1

同じプロジェクトでは、通常、コンポーネントがまだ初期化されていないことを示すために、コンテンツとしていくつかの種類のスピナーまたは読み込み可能な '* ngIf =" myObject == null "'を追加します。このアプローチは、いくつかのカスタムガードコントロールに簡単に変換できます。 –

+2

@StefanSvrkotaはい。あなたはあなたを削除してください。ダーツは、ブラウザアプリケーション(およびサーバー、モバイル、アプリ)を構築するのに最適な言語です。間違いなくもっと見る価値がある;-) –