Watch.JS icon indicating copy to clipboard operation
Watch.JS copied to clipboard

Complete path of changed object

Open qualityking opened this issue 11 years ago • 9 comments

Currently if i am changing something at level2 or level3 it just show me property name which got changed, but not full path

var root= {
  level1 : {
    something : 'at level 1',
    level2: { something : 'at level2', 
        level3: {
                something : 'something at level3'
            }
        }
  }
}


watch(root,  function(prop, action, newvalue, oldvalue){
        alert(prop+" - action: "+action+" - new: "+newvalue+", old: "+oldvalue+"... and the context: "+JSON.stringify(this));
    });


root.level1.level2.level3.something = 'updated at level3'

Any possibility that i will get "root.level1.level2.level3.something" rather than just "something" because property "something" is available at all levels.

Well i just want to thank you for this great efforts!!!

  • Manish Bansal

qualityking avatar Sep 14 '14 11:09 qualityking

:+1: This is something I need at the moment, @qualityking did you find a way around this in the end?

grofit avatar Feb 18 '16 14:02 grofit

I have tried to implement this myself but it seems a bit chaotic and I cannot for the life of me get the path to append, so I can get the end property no problem but keeping the whole route to that object in scope seems a nightmare. @melanke is there any chance you could offer some guidance as to where this sort of change would need to happen, as adding a final arg propertyPath and appending to it every time it goes to a nested object does not seem to persist when it gets to the final object, but it could just be me missing a step.

grofit avatar Feb 26 '16 08:02 grofit

I'd need this, too!

utillity avatar Aug 27 '17 17:08 utillity

I dont think this is getting added any time soon, I ended up creating my own primitive watcher library specifically for the validation lib I was using watcher for, incase it is of help to anyone else source is here:

https://github.com/grofit/treacherous/blob/master/src/watcher/model-watcher.ts

grofit avatar Aug 27 '17 20:08 grofit

+1 I need this too! @melanke this would be a good feature. Any idea how to implement it?

adelriosantiago avatar Sep 22 '17 00:09 adelriosantiago

One tricky bit is also workout out how to spit out array routes, like I ended up needing stuff like:

someObject.someProperty.withAnArray[2].name;

Indicating name had changed in that path.

grofit avatar Sep 22 '17 07:09 grofit

This is really useful, I will try to implement

melanke avatar Mar 15 '18 23:03 melanke

Is there any update of this enhancement ? @melanke

softmantk avatar Dec 10 '18 11:12 softmantk

No, I didn't even tried, I forgot about it, maybe I will try to fix, but no rush... I will accept pull requests

melanke avatar Dec 10 '18 14:12 melanke