【发布时间】:2016-10-08 22:49:42
【问题描述】:
阅读up on the documentation for Ember,我的印象是当一个动作被一个组件触发时,它会沿着层次结构向上,直到它遇到一个具有该名称的动作。但这就是现在正在发生的事情。我有一个这样写的游戏卡组件:
game-card.hbs
<div class="flipper">
<div class="front"></div>
<div class="back">
<img {{action "proveImAlive"}} src={{symbol}} />
</div>
</div>
game-card.js
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['flip-container'],
actions: {
//blank for now because testing for bubbling up
}
});
现在根据我读到的内容,由于 game-card.js 没有“proveImAlive”操作,它会尝试使层次结构冒泡,即特定路线的控制器。
play.js(路径/play)
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
proveImAlive() {
console.log('Im aliiiiveeee');
}
}
});
但是当我最终运行我的应用程序时,我得到了这个错误:
Uncaught Error: Assertion Failed: <testground@component:game-card::ember483> had no action handler for: proveImAlive
现在我的问题是双重的:
为什么会出现这个错误?
-
我想让我的一些组件的动作冒泡到路由的控制器。例如,当单击游戏卡时,我想将该卡的 id 值(待实现)发送到控制器,以便它可以将其存储在数组中。
游戏卡被点击 --> 发送值 1 --> arrayinController.push(1)
我怎样才能做到这一点?
【问题讨论】:
标签: ember.js