2

このjsfiddleには、Emblog.PostsNewRouteEmblog.PostsEditRouteがあります。ルートには、「保存、キャンセル、破棄」のイベントが含まれています。

新しいレコードを作成すると、メモリに作成されるだけで、store.commit()が呼び出されることはなく、コンソールでは次のエラーがスローされます。

Uncaught TypeError:未定義のメソッド'commit'を呼び出すことができません

編集しようとすると、同じエラーがスローされますが、編集はメモリ内でのみ行われます。

破棄アクションも失敗します。

キャンセルを呼び出すと、次のようになります。

未定義のプロパティ'defaultTransaction'を読み取ることができません

ほとんどのコードはjsfiddleにあります。保存イベントとキャンセルイベントは、Yehudaがここで説明したパターンに従います。

    App.NewUserRoute = Ember.Route.extend({
      model: function() {
         return App.User.createRecord();
      },

     events: {
         save: function(user) {
          this.get('store').commit();
         }
     }
   });

ありがとう

4

1 に答える 1

5

フィドルを更新しました!現在、ユースケースの作成、編集、破棄に使用されています。私が変更したものの詳細については、以下を参照してください...

新しいレコードを作成すると、メモリに作成されるだけで、store.commit()が呼び出されることはなく、コンソールで次のエラーがスローされます。UncaughtTypeError:undefinedのメソッド'commit'を呼び出せません

PostNewRoutethis.storeが未定義であるため、originalは失敗しました。またthis.content、未定義だったでしょう。

save: function(post) {
  this.store.commit();
  this.content.addObserver('id', this, 'afterSave');
 },

更新されたバージョンの呼び出しは、投稿のトランザクションでコミットします。また、post.oneコールバックを使用して、レコードが作成された後に遷移します。

 save: function(post) {
   post.one('didCreate', this, function(){
     this.transitionTo('posts.show', post);
   });
   post.get('transaction').commit();
 },

他の更新の詳細で後で更新されます...

編集しようとすると、同じエラーがスローされますが、編集はメモリ内でのみ行われます。

破棄アクションも失敗します。

キャンセルを呼び出すと、次のようになります。未定義のプロパティ'defaultTransaction'を読み取れません

于 2013-01-21T03:59:53.800 に答える