【发布时间】:2012-04-26 23:21:39
【问题描述】:
我正在构建一个需要三个组件的 EmberJS 应用程序。项目列表、每个项目的详细视图和每个项目的编辑视图。在这种特殊情况下,我还没有找到任何关于如何管理数据的好的解释或示例。
你可以在这个要点上找到我现在所拥有的一个简化和清理的示例:https://gist.github.com/2390740
我想避免拥有两个数据副本,但我能够将数据放入详细视图的唯一方法是复制它,这远非理想。
有没有办法从 DetailController 引用 ListController 中数组中的项目?这样,当项目在详细视图中更新时,列表视图会随着更改自动更新。
我想要实现的是 ListController 加载一个包含每个项目的基本信息的列表,然后 DetailController 加载所选项目的所有可用信息。如果列表和详细视图的客户端数据存储可能相同,那么如果用户返回到已加载的项目,DetailController 就不必再次加载详细信息。另一个好处是,如果用户更改任何内容然后返回列表,列表视图就已经是最新的了。
注意:我知道此示例中缺少编辑视图,我只是想让详细视图和列表之间的数据绑定首先工作。
【问题讨论】:
-
我找到了一个稍微好一点的方法,将 currentItem 更改为计算属性,并且只将索引复制到当前项。这更多是我试图实现的目标,但我会留下一个问题,即是否有更好的方法来解决这个问题。
标签: javascript data-binding ember.js