<h1>{{header}}</h1>
<!-- This Back button has multiple option -->
<!-- In home page it will show menu -->
<!-- In other views it will show back link -->
<a ng-href="{{back.url}}">{{back.text}}</a>
<div ng-view></div>
私のモジュール設定で
$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デモンストレーションを作成しました。それを確認してください。