this.send('makeItHappen')
과 함께 작업을 보내고 컨트롤러 B
에서 처리하려고하는 컨트롤러가 A
입니다. 어떻게해야합니까?Ember에서 다른 컨트롤러의 컨트롤러에서 보낸 작업을 처리하는 방법은 무엇입니까?
JS : 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.
, 누군가가 도움이 될 수 있습니다하십시오 : 컨트롤러 B에서
// 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!!');
}
}
});
, 그것은 오류가 발생합니다? 고맙습니다.
컨트롤러 A와 컨트롤러 B 사이의 연결은 무엇입니까? 나는 그것이 각각 부모 자녀 경로인가? 연결이 없다면 컨트롤러를 삽입하고 함수를 호출 할 수 있습니다. direclty – kumkanillam
감사합니다 @kumkanillam, 경로는 다음과 같습니다 : 'controllers/documents/datasets/controller-A' 및 'controllers/controller-B' – Shaoz
아무 관계 A와 B 컨트롤러 사이에 부모 - 자식 관계가있을 때 부모 컨트롤러에 버블 링되고 계층 적으로 부모 응용 프로그램 라우트까지 버블 될 것입니다. 그래서 컨트롤러 -B의'makeItHappen' 함수를 주입하고 직접 호출 할 수 있습니다. 그 대답은 – kumkanillam