UI-Router-изменение $state без перезапуска / перезагрузки страницы
Я смотрел на эти страницы (1, 2, 3). Я в основном хочу изменить свой $state, но я не хочу, чтобы страница перезагрузилась. 
Я в настоящее время на странице /schedules/2/4/2014, и я хочу перейти в режим редактирования, когда я нажимаю кнопку и URL-адрес становится /schedules/2/4/2014/edit. 
мой edit государство просто $scope.isEdit = true, поэтому нет смысла перезагружать всю страницу. Тем не менее, я хочу $state и/или url изменить таким образом  что если пользователь refreshses страницы, он начинается в режиме редактирования.
что я могу сделать?
2 ответов
для этой проблемы вы можете просто создать дочернее состояние, которое не имеет ни templateUrl, ни controller и вперед между states обычно:
// UPDATED
$stateProvider
    .state('schedules', {
        url: "/schedules/:day/:month/:year",
        templateUrl: 'schedules.html',
        abstract: true, // make this abstract
        controller: function($scope, $state, $stateParams) {
            $scope.schedDate = moment($stateParams.year + '-' + 
                                      $stateParams.month + '-' + 
                                      $stateParams.day);
            $scope.isEdit = false;
            $scope.gotoEdit = function() {
                $scope.isEdit = true;
                $state.go('schedules.edit');
            };
            $scope.gotoView = function() {
                $scope.isEdit = false;
                $state.go('schedules.view');
            };
        },
        resolve: {...}
    })
    .state('schedules.view', { // added view mode
        url: "/view"
    })
    .state('schedules.edit', { // both children share controller above
        url: "/edit"
    });
важным концепция вот, что в ui-router, когда приложение находится в определенном состоянии-когда состояние "активно"-все его предковые состояния также неявно активны.
Итак, в данном случае,
- когда приложение переходит из режима просмотра в режим редактирования, его родительское государство schedules(вместе сtemplateUrl,controllerи дажеresolve) сохранятся.
- поскольку состояния предков неявно активируются, даже если дочернее состояние обновляется (или загружается непосредственно из закладки), страница будет отображаться правильно.
REF: https://github.com/angular-ui/ui-router/wiki/Quick-Reference#statetransitiontoto-toparams--options
$state.transitionTo('yourState', params, {notify: false});
