0

我想在父视图中触发子元素的 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/

谢谢!

4

1 回答 1

2

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

我已经分叉了你的小提琴并实现了一个工作示例:http: //jsfiddle.net/pxkys/1/

希望这可以帮助!

于 2013-04-21T15:44:30.130 回答