ember-changeset icon indicating copy to clipboard operation
ember-changeset copied to clipboard

Delete key from path

Open onlymejosh opened this issue 5 years ago • 1 comments

Hey there I am looking for some guidance on how to handle deleting of keys from a changeset object. I am working on a complex form which did have lots of nested arrays. I am trying out flattening the array to track the fields better. This definitely works better, but I cant work out how to delete the whole key / value and get the changes to be tracked.

This is what I have

{
  metadata: {
    fields: ['name','lastName','age']
    relatedFields: [
        { id: 1, name: 'foo', value: 'bar'}
    ]
}

Which becomes

{
  metadata: {
    'fields[0]': 'name',
    'fields[1]': 'lastName',
    'fields[2]': 'age',
    relatedFields[0].id: 1,
    relatedFields[0].name: 'foo'
    relatedFields[0].value: 'bar',
  }

This makes tracking much easier.

My question. How would I delete 'fields[1]': I tried delete changeset.data['fields[1]'] to no avail

onlymejosh avatar Nov 17 '20 20:11 onlymejosh

👋 Thx for the issue! A few questions...

  1. Is this flattened structure passed to the Changeset contructor?
  2. How come you are trying to delete the fields and mutate the underlying model? Is going through the changeset a possibility? e.g. changeset.set('metadata.fields[0]', null);

snewcomer avatar Nov 19 '20 04:11 snewcomer