我正在用EmberJS v1.0.pre编写一个应用程序。我有一个ArrayController
其中包含所有人的列表。有一堆嵌套的视图显示了每个宠物的人,他们的宠物和笔记。EmberJS嵌套视图和控制器
|----------------------------------------|
| John | <- Person
|----------------------------------------|
| Quincy (Dog) | <- Pet
| - Super ornery | <- Note
| - Likes XYZ Dog food |
| - Will eat your socks |
| |
| Tom (Cat) |
| - Always (not) catching mice |
| |
|----------------------------------------|
| Roger |
|----------------------------------------|
| V (Dog) |
| - Likes XYZ Dog food |
| - Sneezes, but it's ok |
| |
|----------------------------------------|
| ... |
从感觉应该有每个孩子的控制,但我无法弄清楚如何实现,在灰烬纯MVC立场。有顶级的数组控制器,然后是所有单独的视图。如果我想删除一个笔记,或编辑它,似乎我需要将视图的上下文传递给控制器。
// in the view
click: function() {
this.get('controller').updateNote(this.get('content'))
}
这对我来说真的很不好,视图不应该是数据的权威来源。我的假设是ArrayController会实例化一个itemControlerClass
以及itemViewClass
。
更新:我创建了一个fiddle以更好地说明我的问题。该功能故意不完整,目的是通过点击列表上的项目时增加内容来完成功能。
更新:对不起,我在意外删除了小提琴!我正在做一些最终解决方案的工作,所以我会尝试创建一个新的小提琴解决方案。
查看http://emberjs.com/guides/outlets/ –
该指南中没有关于我的问题的真实公司信息。我已经阅读过,我会继续提及它,但还没有发现任何东西。 – noazark
检查出来,然后http://stackoverflow.com/questions/12595496/how-can-i-build-a-recursive-view-in-ember/12602743#comment17008361_12602743 –