是的,这确实棘手。我猜大多数插件都不会遇到这个问题,因为它们类别设置的“默认值”是 null。
你是否有一个核心 API 更改的想法,可以帮助改善这种情况?
完全未经测试,但我认为我们可以通过使用原始 HTML 输入字段(注意是小写的 input 而不是 Ember 的双向绑定 \u003cInput 组件)来立即实现一些功能。
<input
value={{or category.custom_fields.my_field "default value"}}
{{on "change" this.updateMyFieldValue}}
/>
有了这个策略,我们就可以控制如何从模型实例读取/写入值。因此,如果 UI 中的值设置为默认值,我们可以将其作为“null”写入自定义字段:
@action
updateMyFieldValue(event){
let newValue = event.target.value;
if(newValue === "default value"){
newValue = null;
}
this.category.set("custom_fields.my_field", newValue);
}
(然后你就可以移除你在 OP 的 (1) 中描述的默认值配置)