Изменение местоположения AngularJs без сброса всех контроллеров

Короткая версия моего вопроса: как мне изменить URL без необходимости изменения маршрута или без необходимости запуска всех контроллеров на отображаемой в данный момент странице?

Подробности:

У меня есть шаблон, который отображается внутри<ng-view> у которого есть области, которыми управляют 3 контроллера. В самом верху страницы у меня есть интерактивная карта. Когда вы нажимаете на регионы, он передает щелчок, и другой компонент подбирает его и отображает данные об этом регионе. Действительно простая настройка.

То, что я хотел бы сделать, это позволить моим пользователям глубокую ссылку на контент. Поэтому каждый раз, когда кто-то нажимает на ссылку, я хочу изменить URL-адрес, который можно скопировать и вставить в другой браузер. Другой пользователь может просто щелкнуть ссылку и увидеть то же состояние, которое видел первый.

В настоящее время я меняю местоположение с помощью кода, похожего на этот:

  $scope.$on('mapRegionClick', function($scope, regionCode) {
    var url = generateURL(regionCode);

    $scope.currentScope.$apply(function(){
      $location.path(url);
    });});

Затем в моей маршрутизации берется URL, и карта и данные отображаются правильно. Недостатком этого является то, что каждый раз, когда я нажимаю на карту и меняю URL, регенерируется весь шаблон / представление. Поскольку генерация карты довольно сложна, я бы хотел вызвать только изменение контроллера представления данных.

Является ли это возможным? Как?

Я мог бы установить связь между контроллерами и достичь своей цели, но тогда я не смог бы делать глубокие связи.

PS: я не хочу использовать$location.search() а такжеreloadOnSearch=false, мои ссылки должны быть красивыми :)

Ответы на вопрос(2)

Ваш ответ на вопрос