1

私は、ember のすべての最後のルートとデータを使用して、単純な Todo リストを作成しようとしています。ここで私の完全なレポを見つけることができます

私は自分の店を次のように設定しています:

EmberTodo.Store = DS.Store.extend({
  revision: 11,
  adapter: DS.RESTAdapter.create({bulkCommit: false})
});

問題を引き起こしているコード行は次のとおりです。

EmberTodo.CreateItemView = Ember.TextField.extend({
  insertNewline: function() {
    EmberTodo.Item.createRecord({description: this.get('value')});
    this.set("value", "");
  }
});

私が理解していることから、呼び出しcreateRecordはレコードを作成しませんが、代わりにcommit()どこかに呼び出す必要があります。ただし、場所がわかりません。誰にもアイデアはありますか?

4

1 に答える 1

2

私が理解していることから、createRecord を呼び出してもレコードは作成されませんが、代わりに commit() をどこかで呼び出す必要があります。ただし、場所がわかりません。誰にもアイデアはありますか?

もちろん。これを可能な限り最小で機能させるには

EmberTodo.CreateItemView = Ember.TextField.extend({
  insertNewline: function() {
    item = EmberTodo.Item.createRecord({description: this.get('value')});
    item.get('transaction').commit();
    this.set("value", "");
  }
});

ここに DS.FixtureAdapter を使用した単純化された実際の例を配置しました: http://jsbin.com/ugipap/1/edit

できましたよね?

ちょっと。つまり、ビュー内からこのようなことをしたくないということです。このロジックをコントローラー レイヤーに移動するリファクタリングを検討するか、場合によってはルーターに移動することを検討してください。

于 2013-01-23T22:05:26.730 に答える