用户点击链接。我想做两件事:
- 更新模型数据
- 显示模型已更改的通知。
所以我可以在链接上有一个动作调用控制器上的函数。从那里我可以很容易地更新模型数据。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更新,那就把动作发送到视图,并从那里把数据相关的事件发送到路由器/控制器。你应该可以从这里设置回调等。