Ja, das ist knifflig. Ich nehme an, die meisten Plugins stoßen nicht auf dieses Problem, da ihr ‘Standardwert’ für die Kategorieeinstellung ein Nullwert ist.
Hattest du eine Idee für eine Kern-API-Änderung, die die Situation verbessern könnte?
Völlig ungetestet, aber ich denke, wir könnten im Moment etwas auf die Beine stellen, indem wir ein rohes HTML-Eingabefeld verwenden (beachte Kleinbuchstaben input anstelle der bidirektional gebundenen <Input-Komponente von Ember).
<input
value={{or category.custom_fields.my_field "default value"}}
{{on "change" this.updateMyFieldValue}}
/>
Mit dieser Strategie haben wir die Kontrolle darüber, wie Werte aus der Modellinstanz gelesen/geschrieben werden. Wenn also ein Wert in der Benutzeroberfläche auf den Standardwert gesetzt wird, können wir diesen als ‘null’ in die benutzerdefinierten Felder schreiben:
@action
updateMyFieldValue(event){
let newValue = event.target.value;
if(newValue === "default value"){
newValue = null;
}
this.category.set("custom_fields.my_field", newValue);
}
(und dann würdest du die Standardwertkonfiguration entfernen, die du in (1) des OP beschrieben hast)