2016-11-14 8 views
1

角2のアプリケーションを構築しています。データベースも使用しています。データファイルが角2に存在しない場合のエラーの発生方法

<span class="col-sm-6">{{workorder.timeWindowAppointment.date}}</span> 

エラーは次のとおりです:私はこのコード行を入力すると 私はエラーを取得する

は、これは実際には「ヌルのプロパティ 『日付』を読み込めません」私はの日付のプロパティをまだ持っていないので、正しいエラー。私は確かにの日付の特性が将来あることを知っています。

角度2でエラーが発生しないようにするには、ページに何も表示しないでください。

答えて

4

セーフナビゲーションオペレータ?)を使用できます。それはnull/undefined値からテンプレートを保護します。

<span class="col-sm-6">{{workorder?.timeWindowAppointment?.date}}</span> 

それhereについては、こちらをご覧ください。

+1

ありがとうございました。安全なナビゲーションオペレータは完璧に正常に動作しました。 – user2959870

0

この変数はスコープ内で事前定義できます。

$scope.workorder.timeWindowAppointment.date; 

これにより、事前に配置データを持つことができます。おそらく= new Date()。toIsoString();

また、HTMLでも可能です。

<span class="col-sm-6">{{(workorder.timeWindowAppointment.date) || otherValue}}</span> 

繰り返しますが、これは、同じようなことを行いますが、それはあなたに問題を与えるかもしれません念のため、あなたの変数を定義していない、と主が存在しない場合は、別の変数にアクセスすることができます。

または可能です。

<span class="col-sm-6" ng-if="workorder.timeWindowAppointment.date">{{workorder.timeWindowAppointment.date}}</span> 

これは、定義された値があるが、HTMLレイアウトを保持する場合、データを表示します。

もう1つの代替方法があります。

<span class="col-sm-6" ng-show="workorder.timeWindowAppointment.date">{{workorder.timeWindowAppointment.date}}</span> 

これはデータを表示しますが、HTMLを非表示にします。

+0

あなたが与えた解決策はAngular 1の問題を解決するかもしれませんが、Angular 2では解決できないでしょう。私は安全ナビゲーションオペレータを使ってAngular 2で解決しました。 – user2959870

+0

私は悪いです。誰かを助けるかもしれない場合に備えて、私の答えを残しておきます。 –

関連する問題