In AngularJS, the DOM (Document Object Model) responds, so to speak, to changes in the view-model (VM) as defined by the Controllers. But, the Controllers don't directly control the DOM; in fact, the Controller aren't supposed to know about the DOM. This is a clean separation of responsibilities; but, it doesn't always lend itself well to a clean "mental model" of how things interact. Even after two years of AngularJS, I still find myself tripping over the timing of various events in the application. One such scenario is when nested Controllers are listening for the same event.