我想在父视图中触发子元素的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/
谢谢!
答案 0 :(得分:2)
从父母的角度来看,你无法直接访问孩子们的控制器。我认为最好的选择是在newKid
上实施ParentsController
方法,负责在其模型上创建新记录。
我已经分道扬琴并实施了一个有效的例子:http://jsfiddle.net/pxkys/1/
希望这有帮助!