0

なぜこの例外があるのか​​ わかりません:

キャッチされないエラー: loadedDataroot.loaded.updated.uncommitted の状態でイベントを処理しようとしました。

これは、この例外を引き起こす私のコントローラーです:

App.TodosNewController = Ember.ObjectController.extend({
  create: function(todo) {
    var self = this;

    todo.on('becameInvalid', function(todo) {
      self.set('model', todo);
    });

    todo.on('didCreate', function() {
      self.set('priority', '');
      self.set('title', '');
      self.set('due_date', '');
      self.transitionToRoute('todos'); // This line raises exception!
    });
    todo.save();
  }
});

しかし、興味深いことに、このコードはうまく機能しますが、バグがあります。メモリ上に多くのモデル レコードが作成される可能性があります。

App.TodosNewController = Ember.ObjectController.extend({
  create: function() {
    var data = this.getProperties('title', 'priority', 'due_date');
    var todo = App.Todo.createRecord(data);

    var self = this;

    todo.on('becameInvalid', function(todo) {
      self.set('model', todo);
    });

    todo.on('didCreate', function() {
      self.set('priority', '');
      self.set('title', '');
      self.set('due_date', '');
      self.transitionToRoute('todos');
    });
    todo.save();
  }
});

皆様、ご回答ありがとうございます。

4

1 に答える 1

0

解決策は、次の行を削除することです。

  self.set('priority', '');
  self.set('title', '');
  self.set('due_date', '');
于 2013-08-23T19:37:07.317 に答える