From 77627e7c20147920e9263dcc48241c9a451959e6 Mon Sep 17 00:00:00 2001 From: Darcy Date: Fri, 26 Sep 2014 09:33:54 -0400 Subject: [PATCH] fix for unbinding just a single compoenent's store events --- src/delorean.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/delorean.js b/src/delorean.js index 8e240d7..be2fd5b 100644 --- a/src/delorean.js +++ b/src/delorean.js @@ -442,11 +442,15 @@ }; } + // Remember the change handlers so they can be removed later + this.__changeHandlers = {} + /* Generate and bind the change handlers to the stores. */ for (var storeName in this.stores) { if (__hasOwn(this.stores, storeName)) { store = this.stores[storeName]; - store.onChange(__changeHandler(store, storeName)); + this.__changeHandlers[storeName] = __changeHandler(store, storeName) + store.onChange(this.__changeHandlers[storeName]); } } }, @@ -456,8 +460,7 @@ for (var storeName in this.stores) { if (__hasOwn(this.stores, storeName)) { var store = this.stores[storeName]; - /* FIXME: What if another mounted view listening this store? Commenting out for now. */ - store.listener.removeAllListeners('change'); + store.listener.removeListener('change', this.__changeHandlers[storeName]); } } },