我有一个看起来像这样的模型:
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