هذا هو القالب القديم الذي أحاول التخلص منه ونقله إلى مكون 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 للبيانات لأسفل.
ماذا أفقد؟
هل هناك إجراء يمكنني الوصول إليه يسمح لي بتمرير التغيير؟