1. ホーム
  2. angularjs

[解決済み】AngularJSのURLからフラグメント識別子を削除する(#記号)。

2022-04-04 03:28:53

質問

angular.jsのURLから#記号を削除することは可能でしょうか?

やはりビューを変更したときにブラウザの戻るボタンなどを使えるようにしたいので、URLをparamsで更新する予定ですが、#マークはいらないです。

チュートリアルのrouteProviderは、以下のように宣言されています。

angular.module('phonecat', []).
  config(['$routeProvider', function($routeProvider) {
  $routeProvider.
  when('/phones', {templateUrl: 'partials/phone-list.html',   controller: PhoneListCtrl}).
  when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
  otherwise({redirectTo: '/phones'});
}]);

これを編集して、#なしで同じ機能を持たせることはできますか?

解決方法は?

そうです。 $locationProvider を設定し html5Mode から true :

angular.module('phonecat', []).
  config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

    $routeProvider.
      when('/phones', {templateUrl: 'partials/phone-list.html',   controller: PhoneListCtrl}).
      when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
      otherwise({redirectTo: '/phones'});

    $locationProvider.html5Mode(true);

  }]);