Ich muss auf einen Wert eines Objektfeldes überprüfen und abhängig davon möchte ich eine Variable setzen. Aber dieses Feld ist nur ein optionales Feld, vielleicht existiert es gar nicht. Was ist der richtige Weg, um den Wert zu überprüfen?Wie überprüft man den Variablenwert, wenn dieser nicht definiert ist?
Wenn ich nur var result = (data.profile.anyField == 'something')
verwenden würde, würde ich einen Fehler erhalten, wie ich anyField
von undefined
nicht verwenden kann, wenn Profil nicht festgelegt ist.
So würde ich es so machen, aber ich denke, es kann ein wenig schlauer und kürzer gemacht werden:
var modus;
if (Data.profile) modus = (Data.profile.anyField == 'something') ? 'setValue' : '';
else modus = '';
this.modus = new ReactiveVar(modus);
Und die zweite Frage ist, ob es richtig ist, den Wert von modus
auf einem setzen leerer String? Das Ergebnis sollte so aussehen:
this.modus = new ReactiveVar('setValue'); // if modus is true
this.modus = new ReactiveVar(); // if modus is false
Was macht die 'ReativeVar'? Es hängt davon ab, ob Sie eine leere Zeichenfolge übergeben können oder nicht. Du könntest 'var modus = data &&data.profile \ data.profile.anyField == 'something'? 'setValue': ''; ' – putvande