1

我对backbone.js 完全陌生,刚刚开始深入研究臭名昭著的“todos”应用程序以了解它。我注意到localtodos.com包含一个不错的拖放功能,而主干示例没有。localtodos 拖放是用 Mootools 实现的,但我希望改用 jQuery 和 jQuery UI。

我遇到了一个看起来已经实现它的示例,但是当我尝试它时,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获得。

4

0 回答 0