不可能使用单个属性传递所有这些参数。拥有如此多的参数实际上是一种难闻的气味,重构并删除组件中所有对于其功能而言并非必不可少的东西。
假设你有:
<script type="text/x-handlebars" data-template-name="components/my-component">
label 1 {{attribute1}}
label 2 {{attribute2}}
label N {{attributeN}}
<button {{action "gotClicked" some_id}}>Click Me!</button>
</script>
实际上,您必须将几个属性从1
toN
和传递给组件,some_id
这正是您正在做的事情。
问题是组件被设计成可以插入到多个地方的通用代码片段。考虑到这一点,重构并取出其唯一目的是供用户读取/查看的(附件)数据。
就像是:
<script type="text/x-handlebars" data-template-name="some-view">
{{#each}}
label 1 {{attribute1}}
label 2 {{attribute2}}
label N {{attributeN}}
{{my-component some_id=some_id}}
{{/each}}
</script>
<script type="text/x-handlebars" data-template-name="components/my-component">
<button {{action "gotClicked" some_id}}>Click Me!</button>
</script>