Emberjs - 访问{{#each}}循环中的父级

时间:2014-02-25 15:18:31

标签: javascript ember.js handlebars.js

我进行了搜索和搜索,但找不到以下问题的解决方案:

如何访问每个循环中的父级?

所以这就是场景,我需要在嵌套的每个循环中传递一个带有动作助手的父ID。

{{#each}} {{! iterating the model here (arrayController) }}
    {{#if showingApplicants}} {{! this is set by a button that changes a property inside this particular model object}}
        {{#each applicants}}
            <button {{action addLabel _id}}>Add Label...</button>
        {{/each}}
    {{/if}}
{{/each}}

我尝试过../_id../../_id。两者都代表一个未定义的值。有线索吗? 另外:是否可以在动作帮助器中传递两个值?

2 个答案:

答案 0 :(得分:2)

您可以在#each块上创建变量,以便在任何上下文中引用它们

{{#each x in content}}
    {{#if x.showingApplicants}} 
        {{#each applicant in x.applicants}}
            <button {{action addLabel x.id}}>Add Label...</button>
            {{this.controllerProperty}}
            {{x.parentModelProperty}}
            {{y.childModelProperty}}
        {{/each}}
    {{/if}}
{{/each}}

您也可以不为申请人命名,但如果您从命名外部上下文开始,我建议为嵌套each执行此操作以保持一致性并避免可能的名称冲突(外部变量和子项之间)属性)。

希望这有帮助

答案 1 :(得分:-1)

此问题的解决方法是将模型数据映射为包含父ID和子ID的id对象。