尝试 JSON.stringify Ember 模型时 ID 丢失

Id is lost while trying to JSON.stringify Ember model

我正在尝试使用以下代码 JSON.stringify() 控制器内部的路由模型。它有效并且 returns 所有模型属性,模型的实际 ID 除外。我们也可以收到id吗?

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

您需要将 includeId 选项传递给 toJSON method 以获取 JSON 中的 ID。

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) 会给你想要的东西。