我是Ember.js的新手,我有一些问题需要理解它的哲学。我知道 * 动作向上,数据向下 *,但在真实的生活中,假设我在my-gallery组件中初始化了Fotorama(我不知道这是否可以,但我在didInsertElement
方法中完成了它)。这个库有它自己的事件。它们在普通JS中看起来像这样:
$('.fotorama').on('fotorama:ready', function (e, fotorama) {});
或:
$('.fotorama').on('fotorama:show', function () {});
但我觉得在Ember中,这些应该以某种方式Map到组件中的动作。我的问题是:怎么做?2我需要在那些动作中激发一些动作(被另一个组件或者路由器捕获)。3所以我想应该是这样的:this.sendAction('actionName', actionParams);
个
2条答案
按热度按时间svujldwt1#
您可以保留组件引用来调用sendAction方法。
如果我们找到一个更好的答案这个问题。我会很高兴地删除我的答案。
q8l4jmvw2#
我有一个类似的问题。我需要有一个第三方库与我的ember应用程序对话,所以我在我的ember应用程序中注册了一个自定义事件:
然后从第三方代码触发它:
然后,在组件中,根据文档编写该事件的处理程序:
请参阅: