带有余烬的TodoMVC,id不会增加

时间:2015-03-03 16:43:23

标签: ember.js ember-data ember-cli todomvc

我正在关注来自emberjs的入门指南,我正处于可以添加待办事项的地步。我的问题是,当我添加一个待办事项时,它的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();
    }
}

});

1 个答案:

答案 0 :(得分:3)

当您拨打this.store.createRecord()时,您有一个"选项"自动生成id(请参阅here)最终,该职责委托给adapter。如果您的适配器具有generateIdForRecord()方法 - 这将用于创建ID。因此,例如,FixtureAdapter实现此方法如下(请参阅here):

generateIdForRecord: function(store) {
  return "fixture-" + counter++;
}
默认情况下,

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