Introduce `module.root`
wilsonpage opened this issue · 3 comments
wilsonpage commented
I'm proposing we set a new reference on each module with a view, this would be referred to as root
. this.root
would refer to the outermost module in the view hierarchy.
This seems like a simple thing, but opens up a whole host of communication options. Modules are now able to listen to events that happen on the root module (the single point of contact with our app).
this.root.on('themechange', function(type) {
this.classList.remove(this.theme);
this.classList.add(this.theme = type);
});
then...
view.fire('themechange', 'dark');
More controversially this could be used to set a single shared models across multiple modules, if need be.
matthew-andrews commented
+1
wilsonpage commented
@matthew-andrews highlighted a concern that bubbling events could mean module event firing may cause strange 'rebounding' from the root node,
matthew-andrews commented
We have found ourselves in need for this after all :).