我是 Ember.js 的新手,在理解它的理念方面遇到了一些问题。我知道行动起来,数据下来但在现实生活中,假设我有Fotorama在 my-gallery 组件中初始化(我不知道是否可以,但我是在 didInsertElement 方法中完成的)。这个图书馆有自己的事件。它们在普通 JS 中可能看起来像这样:

$('.fotorama').on('fotorama:ready', function (e, fotorama) {}); 

或:

$('.fotorama').on('fotorama:show', function () {}); 

但我觉得在 Ember 中,这些应该以某种方式映射到组件中的 Action 。 我的问题是:如何?我需要在这些操作中触发一些操作(被其他组件或路由器捕获)。所以我觉得应该是这样的:this.sendAction('actionName', actionParams);

请您参考如下方法:

您可以保留组件引用以调用 sendAction 方法。

didInsertElement(){ 
 this._super(...arguments); 
 var _this=this; 
 this.$('.fotorama').on('fotorama:show', function () { 
  _this.sendAction('actionName', actionParams); 
 }); 
} 
willDestroyElement(){ 
 this._super(...arguments); 
 this.$('.fotorama').off('fotorama:show') 
} 

如果我们找到这个问题的更好答案。我会很乐意删除我的答案。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!