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