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