我正在用 EmberJS v1.0.pre 编写一个应用程序。我有一个ArrayController
包含所有人的列表。有一堆嵌套视图显示了这个人、他们的宠物以及每只宠物的注释。
|----------------------------------------|
| 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 的角度来看,感觉每个孩子都应该有一个控制器,但我不知道如何在 Ember 中实现这一点。有顶部的 Array 控制器,然后是所有单独的视图。如果我想删除或编辑注释,似乎我需要将视图的上下文传递给控制器。
// in the view
click: function () {
this.get('controller').updateNote(this.get('content'))
}
这对我来说感觉很糟糕,视图不应该是数据的权威来源。我的假设是 ArrayController 会实例itemControlerClass
化itemViewClass
.
更新:我创建了一个小提琴来更好地说明我的问题。该功能是故意不完整的,目的是在单击列表上的项目时通过增加内容来完成功能。
更新:对不起,我意外删除了小提琴!我正在为最终解决方案做一些工作,所以我将尝试使用该解决方案创建一个新的小提琴。