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