Скажите в функции контроллера, что-то вроде этого:
$scope.fakeChangeState = function() {
$state.go('stay right here and do nothing');
}
И затем вызовите его при нажатии кнопки:
<button ng-click="fakeChangeState()">click</button>
Возможно ли что-то подобное?
Существует директива, которую я хочу активировать, когда нажаты некоторые кнопки на сайте. Директива активируется с помощью "$ stateChangeStart".
Директива активируется просто отлично при переходе на другую страницу, используя, например, панель навигации. Однако есть кнопки, которые не являются частью навигации, которые меняют только вид (т. Е. Редактируют содержимое на странице без изменения состояния при нажатии).
Как мы активируем директиву изменения состояния, без изменения состояния?
Вы можете использовать событие
$stateChangeStart
, чтобы предотвратить переход в другое состояние (т. е. состояние по умолчанию). Я не уверен, когда ваша директива срабатывает, поэтому может быть слишком рано для активации директивы сохранения.$stateProvider
и$state.go()
, что и было вами.$state.reload
. Взгляните на вопрос SO в моем комментарии выше. Из всего, что я слышал, звучит так, что вы пытаетесь достичь. Было бы легче помочь, если бы мы могли видеть код директивыРешил это, просто скопировав код из директивы и введя его в код контроллера, который активируется при нажатии кнопок. По-видимому, я не очень хорошо объяснял, в чем проблема, но просто копирование кода за решет проблему. Это сделало так, чтобы директива не должна была запускаться вообще.