如何使用 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
我有一个简单的组件,我想为动态命名的局部组件提供一个挂钩。
理想情况下我想支持这个界面
{{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