Ember.js如何将组件作为参数传递给另一个组件?

时间:2016-06-08 11:10:53

标签: ember.js

例如,我有两个资源 - 用户和组。还有两个页面,它们处理这些资源的列表,它们是相似的。它们都具有分页和过滤器的通用逻辑,但资源必须以不同方式显示,因此我想创建一个resource-list组件并将user-viewgroup-view组件作为参数传递(和资源) Ember数据的名称)。我可以通过一个组件,或者我可以用其他方式做到这一点,因为我对MVC和那种东西都是新手。

2 个答案:

答案 0 :(得分:6)

您可以使用{{component}}帮助程序(http://emberjs.com/api/classes/Ember.Templates.helpers.html#method_component)。

例如,将详细信息视图的名称传递给资源列表组件

{{resource-list detailView="user-view"}}

{{resource-list detailView="group-view"}}

在资源列表组件中,您包含具有组件帮助程序的组件:

{{component detailView}}

就是这样。

答案 1 :(得分:0)

您可以将两个组件都放在资源列表中,但是您需要显示一个或另一个,具体取决于您将传递给资源列表组件的forUserView或forGroupView。 因此,在您的resource-list.hbs中,您可以拥有:

{{#if forUserView}}
  {{user-view}}
{{#if}}

{{if forGroupView}}
  {{group-view}}
{{/if}}

当你使用资源列表组件时,只需定义:

{{resource-list forUserView=true}}

{{resource-list forGroupView=true}}