I had a case where I wanted components to know if the current route has changed so behavior within their scope could be triggered. This was very hard to do, but this is what I came up with and it seems to work pretty well:
didInsertElement() {
Ember.run.scheduleOnce('afterRender', this, function() {
let router = this.container.lookup('router:main');
router.addObserver('currentPath', function(){
// ... do something here
});
});