如何使用 ember 组件注入动态部分?

How to inject a dynamic partial using ember components?

我有一个简单的组件,我想为动态命名的局部组件提供一个挂钩。

理想情况下我想支持这个界面

{{my-thing displayPartial="wat"}}

然后用户将声明一个部分模板“-wat.hbs”,它将被包含

目前这就是我在组件 hbs 中所做的(这不起作用)

{{partial displayPartial}}

编辑

或可选的基于块的版本

{{#my-thing}}
<p>{{result.name}}</p>
{{/my-thing}}

然后在组件 hbs 中,我会在每个 loop/etc

中生成它
{{#each x in controller}}
{{yield}}
{{/each}}

块版本的问题是我似乎无法通过 "result"(即- yield 结果爆炸)

您应该能够做到以下几点:

<script type="text/x-handlebars" data-template-name="index">
  <ul>
  {{#each item in model}}
    {{my-thing displayPartial=item}}
  {{/each}}
  </ul>
</script>

<script type="text/x-handlebars" id="red">
  RED
</script>

<script type="text/x-handlebars" id="_yellow">
  YELLOW
</script>

<script type="text/x-handlebars" id="_blue">
  BLUE
</script>

<script type="text/x-handlebars" id="components/my-thing">
  <div {{ bind-attr class='displayPartial'}}>
    {{ partial displayPartial }}
  </div>
</script>

此外,不再需要部分名称中的前导下划线 - https://github.com/emberjs/ember.js/issues/2242

工作解决方案here