jueves, 15 de junio de 2017

Cannot read property of undefined javascript

Cannot read property of undefined javascript // No se puede leer propiedad de undefined javascritp


Trabajando con objetos en Javascrip para AngularJS me encontré con el problema de las propiedades de objetos vacíos, es decir, si tengo algo como:

$scope.auto = {};

if($scope.auto.color == "rojo")
{..}

me resultará el error: cannot read color of undefined dado que en realidad no la tiene.

Por esta razón, debemos validar antes que de verdad tenga una propiedad definida.

Si ponemos algo como:

if($scope.auto.color != "undefined")
o
 if($scope.auto.color != undefined)
o
 if(typeof($scope.auto.color) != undefined)

el error persistirá dado que para comparar solicitamos de nueva cuenta la propiedad pero esta no existe, por lo tanto sólo basta con preguntar si simplemente existe y eso quedaría algo así:

if($scope.auto.color)
{..}

y listo. Intersando ¿no?

De esta manera primero nos aseguramos que haya algo qué comparar para después proceder. Si necesitas un if de cualquiera forma, anídalo a esta comparación y así te aseguras de esquivar tal error.  


No hay comentarios:

Publicar un comentario