diff --git a/lib/observer.js b/lib/observer.js index dfc8317..6b44d16 100644 --- a/lib/observer.js +++ b/lib/observer.js @@ -82,7 +82,14 @@ angular.module('OmniBinder') * the removed and added objects. */ this.observeObjectInCollection = function (context, collection, object, callback) { - function onObjectObserved (changes) { + function onObjectObserved(added, removed, changed, getOldValueFn) { + var changes = [{ + added: added, + removed: removed, + changed: changed, + index: getOldValueFn(context.key) + }]; + /* An empty array to hold splice objects that will be created. Splices will look like splices generated natively from Array.observe(). @@ -109,8 +116,7 @@ angular.module('OmniBinder') } } - this.observers[object] = onObjectObserved; - Object.observe(object, onObjectObserved); + this.observers[object] = new ObjectObserver(object, onObjectObserved); }; /* @@ -181,7 +187,7 @@ angular.module('OmniBinder') if (change.removed.length) { //Unobserve each item angular.forEach(change.removed, function unObserve (obj) { - Object.unobserve(obj, self.observers[obj]); + self.observers[obj].close(); }); } }