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);
});
Вы можете увидеть больше здесь