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.