假设我们有一个Todo项目的有序列表,最重要的是我们接下来要处理的项目:
App.TodoItem = DS.Model.extend({
title: DS.attr("string")
});
// comes back ordered from the server
var todos = App.TodoItem.find()
然后我们通过拖动和重新排序列表重新排序。 drop interface。
API的端点为/todos/sort
,期望以新的顺序发布一系列ID。这可以改变,但这是我们现在所拥有的。
您如何将新订单保存到服务器?
我想我可以添加一个position
属性,并在订单更改时更新所有项目,然后在商店中调用commit
- 但这将通过网络发送所有数据我们想要的只是新的订购。此外,除非我们实施批量保存,否则它会发送大量请求。
目前我正在考虑完全绕过此部分的Ember-Data,并在控制器中只有一个普通的$.ajax
请求。
答案 0 :(得分:1)
创建包含有关待办事项的元数据的模型TodoList
。该模型的一个(我现在认为是唯一的)属性将是位置数组。因此,当用户订购待办事项列表时,无需更新每个待办事项,而是更新容器。