[Ember.js]将模板助手创建的模板助手作为属性传递给组件,以便在组件模板中使用它?

[Ember.js]Pass template helpers created by template helpers as a attribute to a component in order to use it in the components template?

我正在使用 paper-data-table which is a extension to ember-paper。 两者都使用了一种我以前从未见过的技术,我将其描述为 "template helpers create template helpers".

这里是ember-paper工具栏组件的一个简单例子

{{#paper-toolbar as |toolbar|}}
 {{#toolbar.tools}}
   {{#paper-button}}
     Go Back
   {{/paper-button}}
   <h2>Toolbar with Standard Buttons</h2>
   <span class="flex"></span>
   {{#paper-button raised=true}}
     Learn More
   {{/paper-button}}
   {{#paper-button mini=true aria-label="Favorite"}}
    {{paper-icon "favorite"}}
   {{/paper-button}}
 {{/toolbar.tools}}
{{/paper-toolbar}}

创建了一个新的模板助手 {{#paper-toolbar as |toolbar|}}。 在我的用例中,我想将由 paper-data-table 模板助手(/组件?)创建的行模板助手传递给另一个组件以将逻辑封装在其中。

我试图将其作为参数传递下去:

{{#paper-data-table
   sortProp='sort'
   sortDir='asc'
   as |table|
}}
   {{#table.body as |body|}}
      {{#each questions as |question index|}}
          {{question-row
              row=body.row
          }}
      {{/each}}
  {{/table.body}}
{{/paper-data-table}}

但是当试图在 question-row 组件的模板中使用 helper(/component) 时

{{#row as |row|}}{{/row}}

我收到以下错误:

Assertion Failed: A component or helper named "row" could not be found Error

所以我想问问这是否可行以及它是如何工作的。

此方法称为上下文组件,我能够在我的问题行组件中使用以下代码解决它:

{{#component row as |row|}}
    {{#row.cell}}
       HALLO
    {{/row.cell}}
{{/component}}