Lecture sur la documentation d'Ember J'avais l'impression que lorsqu'une action est déclenchée par un composant, elle remonte la hiérarchie jusqu'à ce qu'elle trouve une action portant ce nom. Mais voici ce qui se passe en ce moment. J'ai un composant de carte de jeu écrit comme suit :
carte de jeu.hbs
<div class="flipper">
<div class="front"></div>
<div class="back">
<img {{action "proveImAlive"}} src={{symbol}} />
</div>
</div>
carte de jeu.js
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['flip-container'],
actions: {
//blank for now because testing for bubbling up
}
});
Maintenant, d'après ce que j'ai lu, puisque game-card.js n'a pas d'action 'proveImAlive', il va essayer de remonter la hiérarchie, c'est-à-dire le contrôleur pour la route particulière.
play.js (la route /play)
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
proveImAlive() {
console.log('Im aliiiiveeee');
}
}
});
Mais lorsque j'exécute enfin mon application, j'obtiens cette erreur :
Uncaught Error: Assertion Failed: <testground@component:game-card::ember483> had no action handler for: proveImAlive
Ma question est double :
-
Pourquoi cette erreur se produit-elle ?
-
Je veux que certaines des actions de mon composant remontent jusqu'au contrôleur de la route. Par exemple, lorsqu'une carte de jeu est cliquée, j'aimerais envoyer la valeur de l'identifiant (à implémenter) de cette carte au contrôleur pour qu'il puisse la stocker dans un tableau.
la carte de jeu est cliquée --> envoie la valeur 1 --> arrayinController.push(1)
Comment puis-je y parvenir ?