У меня есть контроллер 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, следующие пути: 'контроллеры/документы/наборы данных/контроллер-A' и ' контроллеры/контроллер-B' – Shaoz
Я не нахожу никакого отношения между контроллерами A и B, я имею в виду, когда есть отношения parent-child, тогда 'send' будет пузыриться до родительского контроллера и до маршрута родительского приложения в иерархии. Таким образом, вы можете вводить и напрямую вызывать функцию' makeItHappen' контроллера-B. это возможно – kumkanillam