angularjs получает предыдущий маршрут

{{header}}



<a ng-href="{{back.url}}">{{back.text}}</a>

В моем конфиге модуля

  $routeProvider.
  when('/', {
    controller:HomeCtrl,
    templateUrl:'home.html'
  }).
  when('/menu', {
    controller:MenuCtrl,
    templateUrl:'menu.html'
  }).
  when('/items', {
    controller:ItemsCtrl,
    templateUrl:'items.html'
  }).
  otherwise({
    redirectto:'/'
  });

Контроллеры

function HomeCtrl($scope, $rootScope){
  $rootScope.header = "Home";
  $rootScope.back = {url:'#/menu', text:'Menu'};
}

function MenuCtrl($scope, $rootScope){
  $rootScope.header = "Menu";
  $rootScope.back = {url:'#/', text:'Back'};
}

function ItemsCtrl($scope, $rootScope){
  $rootScope.header = "Items";
  $rootScope.back = {url:'#/', text:'Back'};
}

Как вы можете видеть в моих контроллерах, я жестко закодировал URL-адрес и текст кнопки возврата (на самом деле я нетекст нужен как изображение). Таким образом, в некоторых случаях я обнаружил, что кнопка «Назад» перемещается неправильно. Я не могу использоватьhistory.back() Потому что моя кнопка «Назад» меняется на ссылку меню в домашнем представлении.

Итак, мой вопрос: как мне получить предыдущий путь маршрута в контроллерах или лучший способ добиться этого?

Я создалPlunker демонстрация моей проблемы. Пожалуйста, проверьте это.

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

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