gpt4 book ai didi

javascript - 使用 Ember 组件中的 Morris.js 图表,使用自定义对象从组件到 Controller 冒泡操作事件

转载 作者:行者123 更新时间:2023-11-28 01:21:45 25 4
gpt4 key购买 nike

我正在实现一个基本的 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');

});
}

});

在我的 Controller 中,当触发 goToSession 事件时,它会传入 component 对象。如果它只是传入 row 对象,我会更喜欢它。

这是使用 row 参数冒泡 action 的正确方法吗?

最佳答案

最好将行对象与操作本身一起发送。 Ember.js 组件允许发送包含参数的操作。例如:

this.sendAction('goToSession', row);

这在操作中转换为类似的内容(存在于 Controller 或路由中):

actions: {
goToSession: function(row) {
// manipulate morris row
}
}

了解有关在组件外部发送操作的更多信息 Ember.js components guide .

关于javascript - 使用 Ember 组件中的 Morris.js 图表,使用自定义对象从组件到 Controller 冒泡操作事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com