[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}}
我正在使用 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}}