如何使用Ember Data将排序顺序保存回服务器

时间:2013-02-06 16:05:44

标签: ember.js ember-data

假设我们有一个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请求。

1 个答案:

答案 0 :(得分:1)

创建包含有关待办事项的元数据的模型TodoList。该模型的一个(我现在认为是唯一的)属性将是位置数组。因此,当用户订购待办事项列表时,无需更新每个待办事项,而是更新容器。