Почему дублирует события при state.reload?
Я подозреваю, что при каждой инициализации вешается новый хэндлер, а старый не удаляется. За событиями нужно следить.Почему это вообще в контроллере?
лучше переместить this.rootScope.$on в config