I need to save a user data onto my local storage . JSON.stringify an ember object, it is NOT saving relationships properly, Here I am getting the relationships out of the ember object and manually putting them in the JS plain object before saving it to the localStorage. This was working in ember-data 2.11 but it is throwing unknown mixin error related to relationship on ember-data 2.18. Please help
If you share the code that is trying to take the ember data objects and put them into localStorage maybe I can see what’s going wrong.
Thank you for replying back, i have an extended object search.js inside model
// search.js
export default EmberObject.extend({
days: Ember.computed('pickupDate', 'dropoffDate', function() {
// - 1 second on the .diff() because
// one day lasts for example from 10:00:00 to 9:59:59 but
// our days last from 10:00:00 to 10:00:00
return Math.ceil(moment.duration(getDateTimeObject(this.get('dropoffDate')).diff(getDateTimeObject(this.get('pickupDate'))) - 1).asDays());
}),
isCitySearch: Ember.computed('pickupDestination', function() {
return !(new RegExp(/[A-Z]{3}/i).test(this.get('pickupDestination')));
}),
oneWayChanged: Ember.observer('isOneWay', function() {
if (this.get('isOneWay') === false && this.get('is_deeplink') === false) {
this.set('dropoffDestination', null);
}
else if (this.get('isOneWay') === true && this.get('dropoffDestination') === null) {
this.set('dropoffDestinationName', null);
}
this.set('is_deeplink', false);
}),
pickupDestinationChanged: Ember.observer('pickupDestination', function() {
if(this.get('isOneWay') !== true) {
this.set('dropoffDestination', null);
}
}),
});
This is the part of my service -
// user.js
const search = new Search({
id: searchId,
pos: this.get('config.MARKET'),
dropoffDate,
pickupDate,
products: [],
stations: [],
countries: [],
searchId,
pickupDestination: pickupDestination,
dropoffDestination: dropoffDestination,
search_uuid: searchId,
user: this.get('user'),
visit: this.get('user.visit')
});
here i create an object like this.
this is one of my model
// offer.js
export default DS.Model.extend({
i18n: Ember.inject.service(),
config: Ember.inject.service(),
allCoverageTypes: Ember.computed.mapBy('relatedProducts', 'bundleLabelKey'),
amountPayableAtPickupAmount: attr('number'),
amountPayableAtPickupSupplierAmount: attr('number'),
amountPayableNowAmount: attr('number'),
amountPayableNowSupplierAmount: attr('number'),
bundle: belongsTo('bundle', {async: false}),
ipid_url: Ember.computed.readOnly('bundle.ipid_url'),
search: DS.belongsTo('search', { async: false }),
})
These codes are working with ember-data 2.11 . But when i upgraded ember-data to 2.18 this is throwing unknown mixin error with relationship problem stated
When i remove the code search: DS.belongsTo('search', { async: false })
, the error wont appear and app loads. what went wrong on upgradation?
I’m not sure if it actually makes sense to have a belongsTo
relationship to a thing that isn’t a DS.Model
. Why can’t search
be a plain javascript property?
Are you using something like EmbeddedRecordsMixin
?
Thank you for your time. Yes, i am DS.EmbeddedRecordsMixin in serializer of offer.js . Is it unwanted ?