"?"私が使用したときに私のプロジェクトのように、角度2なぜ "?" 2番目のテンプレート結合の演算子
に結合テンプレートでオペレータ?。バインディングはうまくいきますが、削除するとビューには何も表示されません。
<span class="subhead">{{project?.category}}</span>
違いを教えてもらえますか、このように使用してもよいし、悪い場合もあります。
おかげ
"?"私が使用したときに私のプロジェクトのように、角度2なぜ "?" 2番目のテンプレート結合の演算子
に結合テンプレートでオペレータ?。バインディングはうまくいきますが、削除するとビューには何も表示されません。
<span class="subhead">{{project?.category}}</span>
違いを教えてもらえますか、このように使用してもよいし、悪い場合もあります。
おかげ
角度がproject
が割り当てられた値を持って前にビューをレンダリングし、それは例外が発生します。 ?.
はproject
は、データがかなりの時間がかかることがあり、サーバから例えば、フェッチ非同期であるとき、通常は起こりnull
またはundefined
、あるとき評価を停止します。
変化の検出が変化を認識次回は、バインディングが再評価されるであろう。 project
に値がある場合、それはproject.category
をバインドします。
?
は、安全運航事業者です。変数がnull
であるか、undefined
であるかをチェックして、テンプレートが何らかの虚偽のプロパティを選択しようとしないようにします。
さらに詳しい情報:https://angular.io/guide/template-syntax#the-safe-navigation-operator----and-null-property-paths
中小詳細...安全なナビゲーション演算子は、エルビス演算子と同じではありません。エルヴィスの演算子は安全なナビゲーション演算子(あなたが知っていることを知っている)と同じではない三項演算子を参照してください:) – Alex
@ AJT_82ああ警告のためにありがとう!私はそれを取り除き、混乱を起こさないようにします。 – echonax
ウィキペディアによるとElvis演算子のようです。 [Elvis演算子は第2オペランドが省略された三項演算子です](https://en.wikipedia.org/wiki/Elvis_operator)。それを元に戻す!それを「安全なナビゲーションオペレータ」と呼ぶことは決してありません。 –