我有以下代码:
App.ListsRoute = Ember.Route.extend({
model: function() {
// This get's all the lists from the server
return App.List.findAll()
}
});
App.ListRoute = Ember.Route.extend({
model: function(params) {
// This gets a single list from the server
// Now there are two copies of the same list!
// (one from the line below, and on from App.List.findAll)
return App.List.findById(params.list_id)
},
});
ListsController 和 ListController 都存在于同一页面上。当我直接导航到列表/lists/:list_id
并编辑列表,然后单击{{#linkTo list l}}
链接时,会显示原始的未编辑列表。
我想我想要的是一次在浏览器中只有一个列表的副本。或者也许有更好、更惯用的解决方案?
我应该提一下,我没有使用 Ember Data。我正在使用 jQuery AJAX 来获取我的数据。
编辑:
我认为这措辞不好。我试图弄清楚如何在同一页面上有两个控制器。一个控制器具有对象列表,另一个控制器具有这些对象之一的详细视图。我发现详细视图中的对象需要与列表中的对象相同。
从列表视图和“空”索引视图开始时,这似乎有效。使用 {{linkTo item}} 单击对象效果很好。当我深度链接到对象时,我得到了同一对象的重复副本(因为我从服务器上抓取了列表和单个项目)。
然后,这些多个对象允许数据看起来“不同步”。
处理这个问题的好策略是什么?