2017-09-15 4 views
2

Ich überprüfe, ob ein verschachteltes Objekt Element mit dem Namen „Token“ leer ist oder nicht, in AngularIDE mit Angular4Angular4 - überprüfen, ob verschachteltes Objekt Artikel ist leer

if (typeof this.user.data.token !== "undefined") 

diesem <Cannot read property 'token' of null>

werfen Sollte Muss ich unbedingt nach jedem verschachtelten Objekt suchen?

+0

Sie lodash zur Überprüfung verschachtelten Eigenschaften –

+0

Können Sie ein Beispiel verwenden kann? –

+0

Check für lodash Funktion in offiziellen Dokumenten erhalten –

Antwort

0

Sie müssen ...

if (this.user && this.user.data && this.user.data.token) { 
} 
0

immer daran denken, dass undefined und null unterschiedlich sind, wenn Sie undefined sehen, bedeutet es, dass eine Variable war erklärt, aber es hat keinen Wert darin und null ist eine tatsächliche assi Bewertungswert. Auch undefined ist ein Typ und null ist ein Objekt. Also ..

if(!(this.user.data.token == null)); 

Sollte für Sie arbeiten, wenn Sie einige andere Bedingungen nur hinzufügen möchten, und den Operator || und Typ nächste Bedingung.

Wenn Sie suchen nicht definierten Objekte überprüfen Sie so etwas wie

this.user.data.token != undefined && ... 

und so weiter tun ..