javascript - Bruke Elvis-operatoren i strenginterpolerte uttrykk i Angular 2


I min Angular 2-app bruker jeg strenginterpolasjon for å hente data fra en mongoDB. Akkurat nå er serveren/databasen i endring, så av og til vil det bryte klient-sidevisningen min fordi, for eksempel, hvis jeg henter inn data via strenginterpolasjon, som dette:

{{record.addresses[0].zipCode}}

... og så, på et senere tidspunkt, endres måten dataene er organisert i databasen på, og dette vil ødelegge visningen min - fordi klienten prøver å hente fra felt som ikke lenger eksisterer. Så jeg tror jeg burde kunne bruke noe som elvis-operatoren i et slikt tilfelle. På den måten, hvis dataene er der klienten leter etter dem, vil de vises på skjermen. Men, hvis dataene ikke er der den leter, vil feltet bare bli ignorert helt - uten å ødelegge noe i visningen.

Så, kort sagt, hvordan ville jeg implementere elvis-operatoren på et uttrykk som jeg har ovenfor?

Svar #1

Du bruker det slik:

{{record?.addresses[0]?.zipCode}}

Dette vil sjekke om record er definert, deretter om addresses[0] er definert under record object, og deretter om zipCode er definert under det objektet

Relaterte artikler