Javascript Emberjs部分';s动作不会在组件中触发

Javascript Emberjs部分';s动作不会在组件中触发,javascript,ember.js,Javascript,Ember.js,我尝试扩展一个组件(),以便能够在表单控件旁边添加额外的按钮 想法 开发人员将一个额外属性传递给组件,并在表单控件(输入、选择、文本区域)旁边呈现部分属性 问题 它工作的很好,但如果我有一个部分与一些行动,行动不会火 JsBin 下面是一个简化的JsBin,它演示了问题: html <script type="text/x-handlebars"> <h2>Component test</h2> {{outlet}} </scr

我尝试扩展一个组件(),以便能够在表单控件旁边添加额外的按钮

想法

开发人员将一个额外属性传递给组件,并在表单控件(输入、选择、文本区域)旁边呈现部分属性

问题

它工作的很好,但如果我有一个部分与一些行动,行动不会火

JsBin

下面是一个简化的JsBin,它演示了问题:

html

  <script type="text/x-handlebars">
    <h2>Component test</h2>

    {{outlet}}
  </script>

  <script type="text/x-handlebars" data-template-name="index">
  {{booh-whaa partial="somebutton"}}
  <h3>This partial's action works</h3>
  {{partial "somebutton"}}
  </script>

   <script type="text/x-handlebars" data-template-name='_somebutton'>
  <button {{action "booh"}} >Hit me!</button>
</script>

     <script type="text/x-handlebars" data-template-name='components/booh-whaa'>
  <h3>This is my component</h3>
  {{partial partial}}
</script>

当您在组件内部触发动作时,该组件将处理该动作。如果要继续,请使用
this.sendAction('action')
,然后在组件集
{{booh-whaa-action='booh'}}
。有关组件中操作的更多信息,请参见

这是一张工作票


此外,分部不再需要下划线。

正如Knownasilya所说,默认情况下,组件内部的操作由组件处理。但是,如果在操作帮助器上指定目标,则具有的操作将自动传播,并且不必使用
sendAction()

在您的情况下,这非常简单:

{{action 'booh' target='controller'}}
或者,如果操作在路线视图上:

{{action 'booh' target='parentView'}}
另一个选项是使用将带有上下文和其他参数的操作发送到整个应用程序中的特定目标

{{action 'booh' target='parentView'}}