Controller Name : mailPDF
actions: {
// from the action sendmailPDF of the mailPDF controller I want to call the action name as "send" of the "Sendmail" Component.
sendEmailPDF: function () {
// want to call a component's action ex. SENDMAIL component and its send action()
}
}
答案 0 :(得分:1)
Ember有一个非常严格的数据下降,操作方法,你的控制器没有儿童组件的直接链接/知识。
您可以在组件中添加观察者,观察附加的某些属性,并且随着该属性的更改,您可以在组件中触发操作。或者你的组件可以发送一个动作,用它的父控制器注册自己,给控制器一个自己的引用,以便你打电话。
在这里自由交付:
setup: function(){
this.sendAction('registerWithParent', this);
}.on('didInsertElement')
actions: {
registerPDFComp: function(comp){
this.set('pdfComp', comp);
}
}
{{pdf-comp registerWithParent=registerPDFComp}}
在该示例中,您可以使用pdfComp
属性访问该组件,并调用它的操作。它打破了一大堆原则,单一的责任,yadda yadda yadda。但也许你有充分的理由。