Вам нужно будет вернуть обещание внутри $transition.onStart
- в случае, если вы хотите отменить только что начавшийся переход $, обещание должно быть отклонено или вы можете просто вернуть false (за документацию о перехвате ).
Для вашего конкретного случая angularjs вы можете сделать что-то вроде return $q.reject();
, если уже введено $ q, или попробовать return false;