2015-04-08 51 views
3

我試圖通過使用下面的代碼JSON.stringify()控制器內的路由模型。它的工作原理和它返回的所有模型屬性,除了模型的實際ID。我們是否也可以收到該ID?在嘗試JSON.stringify時丟失Id.stringify模型

var plan = this.get('model'); 
    var reqBody = JSON.stringify(
           { 
            plan, 
            token 
           }); 

回答

9

您需要在includeId選項將toJSON method通過,以獲得該ID的JSON。

var plan = this.get('model'); 
var reqBody = JSON.stringify({ 
    plan: plan.toJSON({ includeId: true }), 
    token 
}); 

如果你不知道,JSON.stringify()會爲你call toJSON()(這是你的情況發生)。如果你想打電話JSON.stringify()而不是model.toJSON({}),你總是可以覆蓋它:

App.Plan = DS.Model.extend({ 
    toJSON: function() { 
     return this._super({ includeId: true }); 
    } 
}); 

這樣JSON.stringify(plan)會給你你想要什麼。

+0

喜歡第二種方法,因爲它具有全局效果。但很高興知道這兩個版本都存在。 –