我对backbone.js完全不熟悉,刚刚开始钻研臭名昭着的'todos'应用程序以感受它。我注意到localtodos.com包括一个很好的拖累和删除功能,而the backbone example没有。当地的拖车和drop是用Mootools实现的,而我正在寻找使用jQuery和jQuery UI。
我遇到an example which looked to have already implemented it但是当我尝试过时,data-id属性出现了问题。添加:
<%= id ? 'data-id="'+id+'"' : '' %>
模板阻止我输入任何待办事项。我在控制台中收到此错误:
未捕获的ReferenceError:未定义id
但是AppView模板的初始化函数中包含的拖放实现确实允许拖放:
this.$("#todo-list").sortable({
update: function(event, ui) {
$('div.todo',this).each(function(i) {
var id = $(this).attr('data-id'),
todo = Todos.get(id);
todo.save({order: i + 1});
});
}
});
如果我删除了data-id属性代码,那么我可以再次输入待办事项,但是当我刷新页面时,他们的订单不会被保存(显然)。
我无法弄清楚data-id属性的问题。我正在使用的代码的更完整示例可以gist here获得。