Il codice che condivido non proviene da un widget, ma da un componente che abbiamo rilasciato per il download qui su meta.
In esso utilizziamo il router, insieme a @discourseComputed, per verificare se la route è cambiata e renderizzare di conseguenza.
Puoi esaminare più a fondo il codice se sei interessato a capire come funziona.