1

我有一个看起来像这样的模型:

var TodosModel = Backbone.Model.extend({

    defaults: {
        id: null,
        content: 'Something Todo',
        completed: false
    },

    url: function() { return 'api/'+this.id; }

});

我通过以下方式添加模型:

var todoID = _.uniqueId();
var todoContent = this.newTodoField.val();
var todoCompleted = false;
  // Ensure there's something to save
        if(todoContent.length>0){
            var _this = this;
            // Create model
            var todo = new TodosModel({
                id: todoID,
                content: todoContent,
                completed: todoCompleted
            });
            todo.save({}, {
                wait: true,
                success: function(model, response) {
                    // Let the events deal with rendering...
                    _this.collection.add(model);
                },
                error: function(model, response) {
                    console.log('Could not create todo');
                }
            });
        }

我遇到的问题是,由于某种原因,每个 id 都会加倍 - 所以如果我从没有元素开始,我会得到 1,3,5,7 ...

这没问题,除非我重新加载并且这些 ID 是从 API 中引入的,然后下一个生成的 _.uniqueID 是基于呈现的计数。

任何帮助将不胜感激,这是完整的代码:http ://sandbox.fluidbyte.org/todos/js/todos.js

4

0 回答 0