3 Stimmen

Ember: Sind die Modell-Initialwerte null oder leerer String?

Ich bin verwirrt über die Initialisierung der Werte eines neuen Modells.

Beim Erstellen eines neuen Datensatzes scheint es, dass alle Eigenschaften den Wert "null" haben.

Sobald Sie etwas in das Textfeld eingeben (das an das Modell gebunden ist) und dann den eingegebenen Wert löschen (also wieder ein leeres Textfeld), wird der Wert der Eigenschaften zu leerem String.

Ist dies das erwartete Verhalten?

Es gibt einen Unterschied für REST-APIs, ob sie null oder "" empfangen...

3voto

Marcio Junior Punkte 19048

Wenn Ihr Attribut DS.attr('string') ist, dann ist dies korrekt. Es spielt keine Rolle, ob der String null oder leer ist, dies bedeutet nur, dass der Text nicht vorhanden ist. Beim Programmieren sind Sie sich der Null bewusst, da Fehler auftreten, wenn auf Methoden zugegriffen wird. Aber in Geschäftsregeln ist es unerheblich, ob der String null oder leer ist, daher handelt es sich um ein häufiges Muster, zum Beispiel:

if (name == null || name.length == 0) {
  // name fehlt, Benutzer auffordern ...
} 

Und dies ist eine seltene Situation:

if (name == null) {
  // hier einige Logik
} else if(name == "") {
  // hier andere Logik
}

Zum Thema Datensatzerstellung. Wenn Sie es erstellen, sind die Werte null. Aber wenn Sie es an ein Textfeld binden, zum Beispiel:

{{input type="text" valueBinding="field"}} 

Sie haben diese Beziehung:

model.field <-> textfield.value

Wenn Sie etwas in model.field setzen, wird es mit dem Textfeld synchronisiert und umgekehrt. Aber wenn Sie das Textfeld bearbeiten, wird der Wert immer ein String sein. Deshalb erhalten Sie beim Löschen des Textfelds immer einen leeren String anstelle von null.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X