使用Ember组件中的Morris.js图,使用自定义对象从组件到控制器的气泡动作事件
Bubbling action event with custom Object from component to controller using Morris.js graph in Ember component
我正在实现一个基本的Ember组件,它将渲染Morris.js折线图。我需要收听morris上的点击事件,并将其传递给动作。
App.ProgressGraphComponent = Ember.Component.extend(
{
graph: null,
tagName: 'div',
renderGraph: function()
{
this.graph.setData(this.get('progress'));
}.observes('progress'),
didInsertElement: function()
{
var element = this.get('element').id;
var self = this;
this.graph = new Morris.Line(
{
element: element,
xkey: 'date',
ykeys: ['amount', 'increase'],
labels: ['Amount', 'increase'],
resize: true,
smooth: false,
parseTime:false
}).on('click', function(i, row){
self.set('clicked', row);
self.sendAction('goToSession');
});
}
});
在我的控制器中,当goToSession
事件被触发时,它在component
对象中传递。我更希望它只是传入row
对象。
这是用row
参数使action
冒泡的正确方法吗?
发送带有操作本身的行对象可能更可取。Ember.js组件允许发送包含参数的操作。例如:
this.sendAction('goToSession', row);
这转化为动作中的类似内容(存在于控制器或路线中):
actions: {
goToSession: function(row) {
// manipulate morris row
}
}
有关在组件外发送操作的更多信息,请参阅Ember.js组件指南。
相关文章:
- 将ember对象的数组从ember组件传递到模板
- 带有内置图像对象的Canvas组件构造函数;t显示's图像
- 我不知道如何正确地将REST响应对象传递给ReactJS子组件
- 聚合物+流星,在火焰#每个循环中,无法将对象传递到聚合物网组件
- Angular 2,在没有直接关系的两个组件之间共享一个对象
- 访问要在 React Native Text 组件中显示的对象数组
- Reactjs:在修改对象之前,是否需要复制处于组件状态的对象
- 将类对象传递给ReactJS组件
- 如何获取 Ember 组件对象内部承诺成功或错误回调
- 测试使用 jQuery 和窗口对象的 React 组件
- <对象>中的 SVG 不会显示在 IE 的 Angular 2 组件中
- Angular 2 和谷歌地图 API.从组件操作映射的对象
- 将对象存储在 React 组件的状态中
- IE11 运行时错误: 429 ActiveX 组件无法创建对象
- 将对象从Javascript传递到基于C++/CX接口的C++/CX-Windows运行时组件
- Fluxx或将通量对象传递给子组件
- 未捕获的错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数,但得到:对象
- Angular2/TypeScript&HTTP:如何将对象附加到组件
- 使用columnToggler获取toggleEvent中的列组件对象
- 是 d3 的可重用组件对象