我用我的帖子创建路线设置了一个保存事件。
App.PostsNewRoute = Ember.Route.extend({
model: function(){
return App.Post.createRecord();
},
exit: function() {
this._super();
this.get('currentModel.transaction').rollback();
},
setupController: function(controller, model){
controller.set('content', model);
},
events: {
save: function(post){
post.one('didCreate', this, function(){
this.transitionTo('posts.show', post);
});
post.get('transaction').commit();
},
cancel: function(){
this.transitionTo('posts.index');
}
}
});
这是我的帖子模型。
App.Post = DS.Model.extend({
body: DS.attr('string'),
headline: DS.attr('string')
});
如您所见,它在帖子创建后过渡到显示路线。我遇到了一个问题,由于帖子的 id 未定义(它是在数据库中创建对象后定义的),因此转换将 url 更改为 /null 。这似乎合乎逻辑,但显然并不理想。
过渡到新帖子 id 的最佳方法是什么?我在创建后返回整个对象(包括 ID)。似乎 Ember 没有看到我要返回的新对象。