Disons que j'ai un composant simple lueur d'une liste des articlesComment obtenir le contexte parent à partir d'un composant dans l'éclat?
<todo-list @items={{ items }}></todo-list>
template.hbs
<ul>
{{#each @items key="@index" as |item|}}
<li onclick={{ action clickme }}>{{ item }}</li>
{{/each}}
</ul>
component.ts
import Component, { tracked } from '@glimmer/component';
export default class TodoList extends Component {
constructor(options) {
super(options);
}
clickme() {
// how do I access the parent context from here?
}
}
Même si je passe dans une action du parent
<todo-list @items={{ items }} @rootclickme={{ rootclickme }}></todo-list>
mis à jour, template.hbs
<ul>
{{#each @items key="@index" as |item|}}
<li onclick={{ action @rootclickme }}>{{ item }}</li>
{{/each}}
</ul>
dans mes component.ts extérieures
rootclickme() {
// I don't have access to parent variables here either?
// only what's within the scope of the function itself?
}
Ce que je suis en train de faire est d'avoir un composant avec une liste. Quand on clique sur un élément de la liste, je veux que l'événement clique en haut d'un clic, afin que le composant parent puisse décider de cacher la liste et d'afficher une vue plus détaillée de cet élément sélectionné.
Comment est-ce que je fais cela dans la lueur? Dans React je passerai
Note: Je ne suis pas en utilisant ember.js complet, à seulement glimmer.js autonome
Lorsque vous liez l'action, il doit être '@rootclickme = {{action rootclickme}}'. L'utilisation de l'aide 'action' assure que le callback' this' est lié au composant approprié. – locks
Vous semblez également avoir coupé votre message? "En réaction je passerais". – locks