操作,它同时影响模型数据和UI



用户点击链接。我想做两件事:

  1. 更新模型数据
  2. 显示模型已更改的通知。

所以我可以在链接上有一个动作调用控制器上的函数。从那里我可以很容易地更新模型数据。UI应该如何更新?如何在数据成功保存到服务器上后才显示通知?

下面是摘自Yehuda评论的一个简单的例子,这可以涵盖几种情况,具体取决于您想要执行哪种类型的UI更新。

App.NewUserRoute = Ember.Route.extend({
  model: function() {
    return App.User.createRecord();
  },
  events: {
    save: function(user) {
      user.one('didCreate', function() {
        this.transitionTo('showUser', user);
      }, this);
      this.get('store').commit();
    }
  }
});

因为视图的状态应该尽可能多地依赖于路由器/控制器,所以尽量让它远离那些地方。如果你需要一些其他的、真正只针对视图的UI更新,那就把动作发送到视图,并从那里把数据相关的事件发送到路由器/控制器。你应该可以从这里设置回调等。

最新更新