重新创建Ember.js组件视图元素

时间:2016-04-26 00:45:28

标签: ember.js

Ember.Component的tagName属性文档说:"标记名称仅在首次创建元素时使用。如果更改元素的tagName,则必须销毁并重新创建视图元素。"

我该怎么做?这是我的代码:

{{#each sortedBricks as |brick|}}
  {{brick-block brick=brick tagName=brick.tagName}}
{{/each}}

如果brick.tagName的值发生变化,我希望更改brick-block组件的view元素。

1 个答案:

答案 0 :(得分:0)

引用guides 你必须使用类似的东西来触发拆解

{{#if falseBool}}
  {{my-component}}
{{/if}}

或导航到新路线,或引用指南 "组件拆卸可以由许多不同的条件触发"

我在以下twiddle

中演示了上述示例

您是否可以详细说明为什么要切换出像这样的tagNames?

我认为你可以通过动态加载组件来实现类似的东西,看起来像这样:

{{#each blocks as |block|}}
  {{component block.componentTagname}}
{{/each}}