Q: Passing around complex objects from parent to child. Any way for parent to detect when its output changed? I have a very complex object. A parent component passes this down to its child component. The child component then passes various parts of this complex object to its own children. Sometimes these children (parent's grandchildren) then pass it down yet again.
I need the parent to detect if the object has changed. The conventional wisdom I've seen is that the child should emit an event when something has changed. The object I'm dealing with is large/complex, and this object can be modified by children/grandchildren/great-grandchildren, so it's a bit difficult to keep track of when something has changed and have to bubble it up multiple times. 
Is there any way for the parent to just always know if the object has been modified?

A: Use observables in this complex object and emit changes through this observables when something changes. This way every interested party can subscribe to changes. 
See https://angular.io/docs/ts/latest/cookbook/component-communication.html for examples.
