melanke / Watch.JS

watch the changes of any object or attribute
Other
2.14k stars 219 forks source link

WatchExcept #126

Open Torinth opened 6 years ago

Torinth commented 6 years ago

Hi, we have run into a case where watchExcept would be helpful. The idea is instead of including props you exclude them. Our case is we retrieve part of our data and need to watch it while async loading other parts. when we set those parts we don't want the watch to occur. I wrote this is a workaround in our app for now but having this as a feature would be nice.

watchAllExcept = (obj, watcher, excludedProps: string[]) => { var props: any[] = [];

    for (var prop1 in obj) { //for each attribute if obj is an object
        if (excludedProps.any(p => p === prop1)) {
            continue;
        }

        if (Object.prototype.hasOwnProperty.call(obj, prop1)) {
            props.push(prop1); //put in the props
        }
    }

    WatchJS.watch(obj, props, watcher);
}
melanke commented 6 years ago

+1 :)