Perché usiamo l’operatore “?” Nel modello di rilegatura in angular 2

Voglio solo sapere di usare il “?” operatore in modello vincolante in angular 2.

Come nel mio progetto quando uso? il binding funziona bene ma se lo rimuovi non mostra nulla nella vista.

{{project?.category}} 

Puoi dirmi la differenza, è una buona pratica usare in questo modo o male.

Grazie

Quando Angolare esegue il rendering della vista prima che il project assegnato un valore, provoca un’eccezione. ?. smette di valutare quando il project è null o undefined , che di solito accade quando i dati vengono prelevati asincroni, ad esempio dal server, che può richiedere un po ‘di tempo.

La prossima volta che il rilevamento delle modifiche riconosce una modifica, i binding verranno rivalutati. Quando il project ha un valore, vincolerà project.category .

? è l’operatore di navigazione sicura. Controlla se la variabile è null o undefined modo che il nostro modello non proverà a selezionare una proprietà di qualcosa di falso.

Maggiori informazioni: https://angular.io/guide/template-syntax#the-safe-navigation-operator-and-null-property-paths