Как выполнить $state.go из директивы или контроллера? Очень просто!
.controller('mainController', function($rootScope, $state, $stateParams) {
$rootScope.state = $stateж
});
А потом вызвать:
$rootScope.state.go('ActionController', {you_filde: you_value}, {location: 'replace', notify: false})
Ссылки по теме: AngularJs UI-Router, Changing the default behavior of $state.go() in ui.router, AngularJS UI-Router Difference