【发布时间】:2016-05-31 21:46:46
【问题描述】:
我正在考虑制作拖放界面的想法。我有多个组件可以在网格上拖动到位。我将有一个按钮,允许用户选择不同的安排。
我想在组件上设置一个函数来设置它的位置(很简单,用左和上)。我希望能够在插入组件以及选择不同的排列时调用此函数。
我想做的是在路由的控制器中创建一个事件。然后,我希望每个组件都能够监听事件,并根据需要做出反应。恐怕我理解的不够多,无法完成这项工作。我已经阅读了API 以及这里的几个问题(1、2),但没有运气。
这就是我所拥有的......
路由的控制器:
import Ember from 'ember';
export default Ember.Controller.extend(Ember.Evented, {
actions: {
callPosition: function(){
this.trigger('position');
console.log('Trigger set...');
},
})
还有组件:
import Ember from 'ember';
export default Ember.Component.extend(Ember.Evented, {
didInsertElement : function(){
this.get('controller').on('position', this, this.position);
},
position: function(){
console.log('event heard by the component');
},
一些我不明白的事情:
- 我是否正确添加了 Ember.Evented mixin?
- 我已按照示例在 didInsetElement 事件中添加了侦听器。这是确保组件在其整个生命周期内监听事件的正确方法吗?
- 活动的范围是什么?是否只能在我们“获取”设置它的控制器时才能听到这么长时间?
您的建议对这位初露头角的业余爱好者有很大帮助!
【问题讨论】:
-
你读过那篇博文 emberway.io/… 吗?这里有一些基本的 DnD 操作......
-
是的,谢谢,那是我的出发点。一个很好的解释。
标签: ember.js