将Ember Handlebars Helper结果传递给组件

时间:2016-01-20 01:28:14

标签: ember.js

我在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的结果传递给组件?

1 个答案:

答案 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中看到它的示例。它可以和任何助手一起使用,你可以多次嵌套!