如何访问hasMany的子控制器

时间:2013-04-21 04:40:04

标签: ember.js ember-data

我想在父视图中触发子元素的ArrayController上的操作。我该怎么办呢?

具体来说,我正在尝试将新的子元素添加到hasMany关系中。它在子元素的视图中使用{{action new}}工作正常,但我不确定如何从父视图执行此操作。

<script type="text/x-handlebars" data-template-name="parents">
    <b>List</b><br />
    {{#each parent in controller}}
        {{ parent.name }} <br />    
        {{ render "kids" parent.children }}
    <a href="#" {{ action parent.children.new target="controller" }}>Parent View Make Kid</a<br/>
    <br />
    {{/each}}
</script>

<script type="text/x-handlebars" data-template-name="kids">
    {{#each kid in controller}}
        > {{ kid.name }} <br />
    {{/each}}
    <a href="#" {{ action new }}> Kid Controller Make Kid</a><br />
</script>

在上面的“Kid Controller Make Kid”中,“Parent Controller Make Kid”没有。

请在此处找到说明问题的小提琴:http://jsfiddle.net/chopper/zHnQC/2/

谢谢!

1 个答案:

答案 0 :(得分:2)

从父母的角度来看,你无法直接访问孩子们的控制器。我认为最好的选择是在newKid上实施ParentsController方法,负责在其模型上创建新记录。

我已经分道扬琴并实施了一个有效的例子:http://jsfiddle.net/pxkys/1/

希望这有帮助!