我在Ember.js周围缠身时遇到了一些麻烦。
我试图将选择的值传递给组件( course-select ),但选择必须是使用来自"#each"的值确定第一阻止( competency.id )。
我已经编写了一个能够正确确定值的助手,并可以将其发送回模板:
{{current-course-helper competency.id}} // 32
我需要做的是将帮助结果传递给组件( course-select )作为 selected 的值。
下面的代码显示了我喜欢的内容,但在另一个{{...}}中使用{{...}}会导致构建错误。
<table width="600px">
{{#each model.tier1Competencies as |competency|}}
<tr>
<td>{{competency.domain}}</td>
<td>{{competency.number}}</td>
<td>{{current-course-helper competency.id}}</td> // Works here
<td>
{{course-select
content = model.tier1Team.tier1Courses
optionValuePath = "content.id"
optionLabelPath = "content.name"
selected = {{current-course-helper competency.id}} // But I need it here
prompt = "Available Courses..."
}}
</td>
</tr>
{{/each}}
</table>
首先确定其他地方的值似乎有问题,因为我需要{{#each}}块中的 competency.id 来确定传递给组件的值。
有没有办法将Handlebar Helper的结果传递给组件?
答案 0 :(得分:0)
正确的语法是:
{{course-select
content = model.tier1Team.tier1Courses
optionValuePath = "content.id"
optionLabelPath = "content.name"
selected = (current-course-helper competency.id)
prompt = "Available Courses..."
}}
它被称为嵌套助手,您可以在concat
helper documentation中看到它的示例。它可以和任何助手一起使用,你可以多次嵌套!