음, 이건 좀 까다로운 문제네요. 대부분의 플러그인은 카테고리 설정의 기본값이 null 값이기 때문에 이런 문제에 부딪히지 않는 것 같습니다.
상황을 개선할 수 있는 코어 API 변경 사항에 대해 어떤 아이디어가 있으셨나요?
아직 전혀 테스트해보지 않았지만, 현재 상태에서는 원시 HTML 입력 필드를 사용해 무언가를 해결할 수 있을 것 같습니다(Ember의 양방향 바인딩 <Input 컴포넌트가 아닌 소문자 input을 사용한다는 점에 유의하세요).
<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)에서 설명한 기본값 설정을 제거하면 됩니다)