首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >助手如何能够像{ component componentName}} helper那样动态地调用组件的名称

助手如何能够像{ component componentName}} helper那样动态地调用组件的名称
EN

Stack Overflow用户
提问于 2015-10-22 21:16:45
回答 2查看 279关注 0票数 1

如何在助手内部调用与工具栏的助手{{component ' componentName‘model=model}相等的值,以便基于以编程方式更改的componentName动态呈现组件?

我使用的是烬-cli 1.13.8,与Ember 2.0.1。

一点背景

我有名为cs-widget-imagecs-widget-textcs-widget-form的组件,它们期望基于模型widgetkind属性。

因此,对于其类型为image的小部件,我希望呈现组件cs-widget-image,但我不认为模型应该知道发现正确组件名称的逻辑,因此我不考虑在视图中使用helper {{component widget.componentName}}

我认为最好有一个帮手,我可以用它来表达我的观点,例如:

代码语言:javascript
复制
{{#each manyTypesWidgets as |widget|}}
  {{widget-component widget.type model=widget}}
{{/each}}

在我看来,助手widget-component会接收到一个小部件模型,并且根据它的属性执行一种"eval“,并在内部调用等效于{{component 'componentName' model=widget}}

例:使用widget = {id: 1, type: 'image'}

代码语言:javascript
复制
{{widget-component widget.type model=widget}}

应该以编程方式调用模板上的等效HandleBars助手:

代码语言:javascript
复制
{{component 'cs-widget-image' model=widget}}

关于可能重复问题的免责声明

在将其标记为重复之前,我需要说,我在StackOverflow上确实发现了一些类似的问题,比如:[1] [2] [3] [4] [5],但所有答案都是基于在Ember 2.0.1和Ember 1.13.8上不再起作用的旧版本的ember。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-23 03:43:11

您可以构建一个助手,并将构建组件名称的逻辑放入其中。让我们调用助手widget-name,您可以这样使用它:

代码语言:javascript
复制
{{component (widget-name widget) model=widget}}

如果逻辑简单到将小部件类型附加到cs-widget-的末尾,那么下面的操作应该是很简单的:

代码语言:javascript
复制
{{component (concat "cs-widget-" widget.type) model=widget}}

我认为您的widget-component方法更复杂,因为您必须有一个具有逻辑的计算属性,然后将其绑定到{{component调用中。我希望这两项建议有帮助:)

票数 3
EN

Stack Overflow用户

发布于 2015-10-23 06:35:00

这对你不管用吗?

代码语言:javascript
复制
//JS

widgetsWithTemplates : Ember.computed.map('manyTypesWidgets', function(widget) {
   widget.set('componentName', 'cs-widget-' + widget.get('type')); 
})

在模板中,只需通过componentName属性调用组件:

代码语言:javascript
复制
//HBS 

  {{#each manyTypesWidgets as |widget|}}
       {{widget.componentName model=widget}}
  {{/each}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33290910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档