Ember-data embedded objects stored as separate obj

2019-01-29 00:53发布

问题:

I was wondering if it would be possible to define a model stored into another one.

I have this kind of structure:

Model Contact
    String name
    Model Address (hasMany)
    Model Phone (hasMany)

On my backend, addresses and phones are MongoDB's embedded documents contained in a "Contact" document.

And, as long as they are embedded documents, they do not have an id. And when I am on the Emberjs/data layer, they are -well- loaded with the embedded option (cf. the end of the https://github.com/emberjs/data#one-to-one section) but stored as separate objects and this cause trouble when updating or saving...

回答1:

You are using the RESTadapter... when you are saving you want to serialize all the relationships embedded?

When you are saving or updating your record pass in the options hash to the toJSON method with

{associations: true}

Take a look at the unit tests on ember-data for examples: https://github.com/emberjs/data/blob/master/packages/ember-data/tests/unit/to_json_test.js

deepEqual(record.toJSON({ associations: true }),
        { id: 1, name: "Chad", phone_numbers: [{
            id: 7,
            number: '123'
          },
          {
            id: 8,
            number: '345'
          },
          {
            id: 9,
            number: '789'
          }
        ]},
        "association is updated after editing associations array");
});

Hope this helps..