Skip to content
This repository has been archived by the owner on Jun 9, 2022. It is now read-only.

Introduce module.root #44

Open
wilsonpage opened this issue Aug 29, 2013 · 3 comments
Open

Introduce module.root #44

wilsonpage opened this issue Aug 29, 2013 · 3 comments

Comments

@wilsonpage
Copy link
Contributor

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
Copy link
Contributor

+1

@wilsonpage
Copy link
Contributor Author

@matthew-andrews highlighted a concern that bubbling events could mean module event firing may cause strange 'rebounding' from the root node,

@matthew-andrews
Copy link
Contributor

We have found ourselves in need for this after all :).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants