2

私は emberjs の入門ガイドに従っており、todos を追加できるようになりました。私の問題は、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-data はRestAdapterデフォルトで使用されるため (こちらを参照)、クライアントで生成されるメソッドを追加する必要がありidます...

于 2015-03-03T21:38:03.370 に答える