2

在这个jsfiddle中,我有EmBlog.PostsNewRouteEmBlog.PostsEditRoute。路由包含“保存、取消和销毁”事件。

当我创建一个新记录时,它只在内存中创建它并且从不调用 store.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() 并且在控制台中,它会抛出错误: Uncaught TypeError: Cannot call method 'commit' of undefined

原始PostNewRoute失败,因为 this.store 未定义。也this.content将是未定义的。

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

更新的版本在帖子的事务上调用 commit。还使用 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 回答