Angularjs auto префиксы косой черты

Если я нажму URL, скажите

www.xyz.com/home#route-1

AngularJS автоматически перенаправляет его на

www.xyz.com/home#/route-1

То есть - он префикс маршрута с помощью / (прямая косая черта)

Почему это происходит и как я могу прекратить делать это?

Обновление Я действительно ищу, что angular не должен прикреплять косую черту, не удаляя хеш-знак.

Ответ 1

@Tushar Я не уверен, что вы выяснили решение, но я натолкнулся на ваш сценарий и не повезло с поисковой системой. В конце концов я понял, что это довольно простое исправление, я добавил: -

angular.config(function($locationProvider) {
    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false,
        rewriteLinks: false
    });
})

И он просто прекратит прикреплять префикс прямой косой черты (/) к моему хэш-якорю. Все остается тем, с чем мы знакомы (без замены URL-адреса хешем или что-то не так).

Ответ 2

Если вы хотите использовать якорь в своем приложении AngularJS, вы должны использовать службу $anchorScroll.

"controller"

function ScrollCtrl($scope, $location, $anchorScroll) {
  $scope.gotoBottom = function (){
    // set the location.hash to the id of
    // the element you wish to scroll to.
    $location.hash('bottom');

    // call $anchorScroll()
    $anchorScroll();
  }
}

"html"

<div id="scrollArea" ng-controller="ScrollCtrl">
  <a ng-click="gotoBottom()">Go to bottom</a>
  <a id="bottom"></a> You're at the bottom!
</div>

Вы могли видеть, что это работает в документации AngularJS.

Если вы хотите убрать URL-адрес AngularJS, вы можете включить html5Mode:

.config(function($routeProvider, $locationProvider) {

    $routeProvider
        .when('/', {
            templateUrl : 'partials/home.html',
            controller : mainController
        })
        .when('/about', {
            templateUrl : 'partials/about.html',
            controller : mainController
        })
        .when('/contact', {
            templateUrl : 'partials/contact.html',
            controller : mainController
        });

    // use the HTML5 History API
    $locationProvider.html5Mode(true);
});

Вы можете увидеть больше здесь