2

我正在遵循 emberjs 的入门指南,并且可以添加待办事项。我的问题是,当我添加一个 todo 时,它的 id 值为 null - 有没有一种实用的方法来自动增加它?

var TodosController = Ember.ArrayController.extend({
actions: {
    createTodo: function() {
        var title = this.get('newTitle');
        if (!title.trim()) {
            return;
        }

        var todo = this.store.createRecord('todo', {
            title: title,
            isCompleted: false
        });

        this.set('newTitle', '');

        todo.save();
    }
}

});

4

1 回答 1

3

当您致电时,this.store.createRecord()您有一个“选项”来id自动生成(请参阅此处),但最终,该责任被委派给adapter. 如果您的适配器有generateIdForRecord()方法 - 这将用于创建一个 id。因此,例如,FixtureAdapter按如下方式实现此方法(请参见此处):

generateIdForRecord: function(store) {
  return "fixture-" + counter++;
}

ember-dataRestAdapter默认使用(请参阅此处),因此您需要添加id要在客户端生成的方法...

于 2015-03-03T21:38:03.370 回答