1

我正在尝试执行以下操作:

  • “创建”一个对象(通过 POST 到服务器)
  • 然后立即在客户端上编辑它。

所以基本上这意味着 UI 可以保持不变 - 除了下次单击“提交”时,表单是 PUT 而不是 POST。

1- 现在,只要我提交表单,它就会用新数据刷新。

为什么这样做?

    App.FooNewRoute = Ember.Route.extend({
      ...
      events: {
        submit: function(){ 
            this.store.commit(); // The form content changes
        }
      }

    });

2-我的第一个直言不讳的方法是做 POST 然后编辑是打电话

    this.transitionTo('foo.edit', this.get('controller').get('model'));

紧接着

    this.store.commit();

但它不起作用,当我尝试编辑它时,我理解为什么(对象仍然“被保存” - 或 inFlight - )。

但是怎么做呢?

谢谢!PJ

4

1 回答 1

2

基本上,您需要等待交易完成,然后再进行转换。

App.FooNewRoute = Ember.Route.extend({
  ...

  events: {
    submit: function(){
      var foo,
        _this = this;
      foo = this.get('controller').get('model'); 

      // Register a one-time callback for the 'didCreate' event
      foo.one('didCreate', function() {
        // At this point the model's id has not been set, so wait till next run loop
        Ember.run.next(_this, function() {
          // Now foo is ready, transition to edit
          this.transitionTo("foo.edit", foo);
        });
      });
      this.store.commit();
    }
  }
})
于 2013-02-26T19:28:10.583 回答