我使用Ember 2.3并在Ember Highcharts周围建立了一个控制器。单击图表点时,我通过添加到highcharts配置对象的以下令人讨厌的代码将该事件发送回控制器:
Graph.__container__.lookup('controller:accounts.account.outlets.outlet.ratings').send('pointClick', event);
(我知道这是根本错误的,应该使用getOwner.lookup作为容器参考)
这没有问题,但我现在正在将此控制器重构为组件,并且无法考虑如何将图形事件传递回组件,因为组件未在应用程序容器中注册。
非常感谢任何有关如何实现这一目标的指示!
感谢。
更新
我刚发现我可以从Highcharts事件函数向组件发送操作:
Graph.__container__.lookup('component:ratingsGraph').send('pointClick', event)
但这似乎创建了组件的新实例,而不是发送到现有实例。我认为这是有道理的,因为组件不是单身。
非常令人沮丧!
答案 0 :(得分:2)
有些日子你看不到树木了!
我没有在highcharts配置参数中定义highcharts事件函数,而是简单地在组件中定义它并将其传递给highcharts。这使我能够使用闭包来保持对定义组件的引用。
卫生署!