제가 제거하려고 하고 Glimmer 컴포넌트로 이동시키려는 오래된 템플릿입니다.
{{#if model.showLocationControls}}
{{add-location-controls
location=buffered.location
categoryId=buffered.category.id
}}
{{/if}}
아래쪽에는 단순히 this.set("location", location);가 있으며, 이는 양방향 바인딩을 나타내는 것으로 보입니다.
이것은 잘 작동합니다.
buffered로 버퍼에 접근하면 위치 변경을 상위 컴포넌트로 전달하는 데 필요한 연결성을 제공합니다.
도전은 대체 Glimmer 컴포넌트를 사용할 때 발생합니다:
export default class EditLocationDetails extends Component {
@action
updateLocation(location) {
this.args.outletArgs.buffered.location = location;
}
<template>
{{#if this.args.outletArgs.model.showLocationControls}}
<AddLocationControls
@location={{this.args.outletArgs.buffered.location}}
@category={{this.args.outletArgs.buffered.category}}
@updateLocation={{this.updateLocation}}
/>
{{/if}}
</template>
}
이제 속성은 업데이트되지만, Glimmer 인자가 data down이기 때문에 변경 사항이 유지되지 않습니다.
무엇을 놓치고 있을까요?
변경 사항을 상위 컴포넌트로 전달할 수 있는 액션이 있을까요?