我有一個控制器A
發送動作this.send('makeItHappen')
,我想在控制器B
中處理它。我該怎麼做?在Ember中,我如何處理從另一個控制器中的控制器發送的動作
JS:
// controllers/documents/datasets/controller-A
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
sendToDataCenter() {
this.send('makeItHappen'); // this throws an error
}
}
});
// controllers/controller-B
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
makeItHappen() {
console.log('It works!!');
}
}
});
在控制器B,它拋出一個錯誤: Uncaught Error: Nothing handled the action 'makeItHappen'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.
請,誰能幫助?謝謝。
控制器A和控制器B之間的連接是什麼?我的意思是分別是父母的孩子路線嗎?如果沒有連接,那麼你可以注入控制器和調用函數direclty – kumkanillam
謝謝@kumkanillam,路徑是: 'controllers/documents/datasets/controller-A'和 'controllers/controller-B' – Shaoz
我沒有找到任何關係在A和B控制器之間,我的意思是當有父子關係時,'send'會冒泡到父控制器,直到父應用程序在層次結構中路由。所以你可以注入並直接調用控制器B的'makeItHappen'功能。這可能是 – kumkanillam