在渲染之前编辑Ember块组件的产量内容?

时间:2016-03-09 14:03:31

标签: ember.js

我想编辑传递给块组件的yield的内容。

例如,拥有:

{{#no-foo}}foo{{/no-foo}}

应输出:

<div id="emberxxxx">bar</div>

因为我希望在我的组件逻辑中有这样的东西:

init: function() {
  this.set('yield', this.get('yield').replace('foo', 'bar'));
}

Ember.js有可能吗?

1 个答案:

答案 0 :(得分:1)

我不建议这种做法。这似乎是一个硬编码的解决方案,它假设块内总是有foo ..在这种情况下:“为什么会产生foo的块?”

相反,我会考虑为foo创建一个计算属性,以便您可以计算/更改它的方式...然后将计算属性输出到块中。

// component.hbs
{{yield computedFoo}}

// main template
{{#my-component as |computedFoo|}}
  {{computedFoo}}
{{/my-component}}