我在玩着製作拖放界面的想法。我有多個組件可以通過網格拖動到位。我將有一個按鈕,允許用戶選擇不同的安排。創建一個由組件監聽的控制器事件
我想要一個設置其位置的組件的函數(很簡單,左邊和上邊)。我希望能夠在插入組件時以及選擇不同排列時調用此函數。
我想要做的是在路由控制器中創建一個事件。然後,我希望每個組件都能夠聽取該事件,並在必要時作出反應。恐怕我對這項工作不夠了解。我已閱讀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 correc TLY?
- 我已經按照示例在didInsetElement事件中添加了監聽器。這是確保組件在其整個生命週期中監聽事件的正確方法嗎?
- 活動的範圍是什麼?它能被聽到這麼久,我們'得到'設置它的控制器嗎?
你的建議對這個萌芽的業餘愛好者有很大的幫助!
你讀過博客博斯特https://emberway.io/ember-js-and-html5-drag-and-drop-fa5dfe478a9a#.tgfpo6kxu?一些基本的DnD在這裏行動... –
是啊,謝謝,那是我的出發點。一個很好的解釋。 – rjoxford