Ember.js 余烬3+;将动作从组件传递到控制器不工作

Ember.js 余烬3+;将动作从组件传递到控制器不工作,ember.js,controller,components,closures,Ember.js,Controller,Components,Closures,我们最近从ember 2+转移到ember 3.18.0,我正在努力从组件调用控制器函数。在以前的版本中,我们使用sendAction来冒泡操作,但现在由于sendAction被折旧,并且正在使用闭包,我无法正确地进行冒泡操作 下面是我的代码 Controller.hbs {{generic-err-modal err=receivedErr showDialog= this.showErrorModal onSave=(action "closePromptDialog")

我们最近从ember 2+转移到ember 3.18.0,我正在努力从组件调用控制器函数。在以前的版本中,我们使用sendAction来冒泡操作,但现在由于sendAction被折旧,并且正在使用闭包,我无法正确地进行冒泡操作

下面是我的代码

Controller.hbs

{{generic-err-modal err=receivedErr showDialog= this.showErrorModal onSave=(action "closePromptDialog")}}
Controller.js

@action
closePromptDialog(){
    this.set("showErrorModal",false);
}
Component.hbs

    {{#if @showDialog}}
  <PaperDialog id="genericModal" class="flex-50" @fullscreen={{fullscreen}} @onClose={{action "closePromptDialog"}} @origin={{dialogOrigin}}>
      <PaperDialogContent class="text-align-center">
          {{paper-icon "remove_circle_outline" class="red" size=48}}
      </PaperDialogContent>
      <PaperDialogContent>
        <h2>{{@err.errorMessage}}</h2>
      </PaperDialogContent>

      <PaperDialogActions @class="layout-row">
        <span class="flex"></span>
        <PaperButton @primary={{true}} @onClick={{action "hideModal"}} @raised={{true}}>Ok</PaperButton>
      </PaperDialogActions>

  </PaperDialog>
{{/if}}
在这一点上,我得到的错误如下

Uncaught TypeError: method is not a function
任何帮助都将不胜感激


我正在使用的Ember版本是Octane edition的3.18.0,Ember中的所有内容都变得更加明确,很高兴它有所帮助:)我如何从嵌套组件的内部访问
closePromptDialog
?我是否应该继续将其作为参数传递给每个子组件?是的。您是正确的,您必须通过组件树显式地将其传递给内部组件
Uncaught TypeError: method is not a function