2
我有一个保存事件设置与我的文章创建路线。支持的方法转换到新的对象
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似乎没有看到我要返回的新对象。
你可以用你的问题创建一个jsfiddle吗? – 2013-02-27 13:46:07
这很难演示,因为它与我的服务器上调用RESTful方法有部分关系。这很困难,因为我在我的服务器上创建了一个新记录。问题是我没有为该记录设置一个ID,直到我将记录提交给服务器(换句话说,Ember从来没有听说过这个ID--它是在数据库中创建的,而不是在客户端上创建的)。因此,当我转换到新记录时,该记录的ID为空,因此它在URL中显示为空。我不确定我是否以最好的方式处理这个问题。我将使用更多的路由代码更新我的帖子。 – sentinel21 2013-02-27 16:37:51