ember-localstorage-adapter icon indicating copy to clipboard operation
ember-localstorage-adapter copied to clipboard

relationships in "new" state should not be pushed to LS

Open Leooo opened this issue 8 years ago • 0 comments

From https://github.com/emberjs/data/blob/v2.1.0/packages/ember-data/lib/system/relationships/state/relationship.js#: setHasData:

/*All relationships for a newly created ('store.createRecord()') are
  considered known ('hasData === true').
*/

=> serializeHasMany:

serializeHasMany: function(snapshot, json, relationship) {
  //..
  //json[payloadKey] = snapshot.hasMany(key, { ids: true });
  var onlyNotNew=snapshot.hasMany(key);
  if (onlyNotNew) {
    onlyNotNew=onlyNotNew
      .filter(function(rel){return !rel.get("isNew");})
      .map(function(rel){return rel.id;});
  }
  json[payloadKey] = onlyNotNew || [];
  //..
}

serializeBelongsTo:

      serializeBelongsTo: function(snapshot, json, relationship) {
        var key = relationship.key;
          var onlyNotNew=snapshot.belongsTo(key);
          if (onlyNotNew) {
            if (!onlyNotNew.get("isNew")) {
              onlyNotNew=onlyNotNew.id;
            }
            else {
              onlyNotNew=null;
            }
          }
          var belongsToId = onlyNotNew;
          var payloadKey = this._getMappedKey(key);
          if (payloadKey === key && this.keyForRelationship) {
            payloadKey = this.keyForRelationship(key, "belongsTo");
          }
          if (Ember.isNone(belongsToId)) {
            json[payloadKey] = null;
          } else {
            json[payloadKey] = belongsToId;
          }
          if (relationship.options.polymorphic) {
            this.serializePolymorphicType(snapshot, json, relationship);
          }
        }
      },

Leooo avatar Nov 02 '15 12:11 Leooo