Por qué usamos "?"operador en encuadernación de plantilla en angular 2


Solo quiero saber sobre el uso de la"?"operador en encuadernación de plantilla en angular 2.

Como en mi proyecto cuando lo uso ?. el enlace funciona bien, pero si quitarlo luego no muestra nada en la vista.

<span class="subhead">{{project?.category}}</span>

¿Puede decirme la diferencia, es una buena práctica para usar de esta manera o mala.

Gracias

 24
Author: Sohail, 2017-02-21

2 answers

Cuando Angular renderiza la vista antes de que project tenga un valor asignado, causa una excepción. ?. deja de evaluar cuando project es null o undefined, lo que generalmente sucede cuando los datos se obtienen asincrónicamente, por ejemplo, desde el servidor, lo que puede tomar bastante tiempo.

La próxima vez que la detección de cambios reconozca un cambio, los enlaces serán reevaluados. Cuando project tenga un valor, se enlazará project.category.

 26
Author: Günter Zöchbauer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-21 10:04:00

? es el operador de navegación segura. Comprueba si la variable es null o undefined para que nuestra plantilla no intente seleccionar una propiedad de algo falso.

Más información: https://angular.io/guide/template-syntax#the-safe-navigation-operator----and-null-property-paths

 22
Author: eko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-19 06:17:52