Dies ist die alte Vorlage, die ich loswerden und in eine Glimmer-Komponente verschieben möchte
{{#if model.showLocationControls}}
{{add-location-controls
location=buffered.location
categoryId=buffered.category.id
}}
{{/if}}
Weiter unten gibt es einfach ein this.set("location", location);, das eine Zwei-Wege-Bindung zu haben scheint.
Das funktioniert gut.
Der Zugriff auf den Puffer mit buffered bietet die notwendige Konnektivität, um Änderungen am Standort nach oben weiterzugeben.
Die Herausforderung besteht darin, wenn eine Ersatz-Glimmer-Komponente verwendet wird:
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>
}
Jetzt kann das Attribut aktualisiert werden, aber es bleibt nicht bestehen, vermutlich weil es sich um ein Daten-nach-unten-Glimmer-Argument handelt.
Was übersehe ich?
Gibt es eine Aktion, auf die ich zugreifen kann, die es mir ermöglicht, die Änderung nach oben weiterzugeben?