Я использую angular, и у моего url всегда есть "!" (восклицательный знак)
Например:
http://localhost/#!/login.html
Мне не нужно "!". Как я могу удалить его?
eg:http://localhost/#/login.html
Это мой код маршрутизатора:
// Redirect any unmatched url
$urlRouterProvider.otherwise("/login.html");
$stateProvider.state('login', {
url: "/login.html",
templateUrl: "views/login.html",
data: {pageTitle: "login", isLeft: false},
controller: "LoginCtrl",
resolve: {
deps: ['$ocLazyLoad', function ($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'myApp',
files: [
'controllers/LoginCtrl.js'
]
});
}]
}
});
Я думаю, что Angular -ui-router может возникнуть проблема, но я не могу найти решение.
Спасибо!
Ответы
Ответ 1
Режим Hashbang
Режим Hashbang - это трюк, который использует AngularJS для обеспечения возможностей глубокой привязки к вашему Angular
Программы. В режиме hashbang (возврат к режиму html5) пути URL-адреса имеют добавочный символ #.
Они не переписывают теги и не требуют поддержки на стороне сервера. Hashbang
mode - режим по умолчанию, который использует AngularJS, если он не сказал иначе.
URL-адрес hashbang выглядит так:
http://yoursite.com/#!/inbox/all
Чтобы быть явным и настраивать режим hashbang, его необходимо настроить в функции конфигурации на
модуль приложения
Мы также можем настроить hashPrefix, который в режиме hashbang является! префикс. Этот префикс является частью резервного механизма, который Angularиспользуется для старых браузеров. Мы также можем настроить этот символ.
Чтобы настроить hashPrefix:
angular.module('myApp', ['ngRoute'])
.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');
}]);
Ответ 2
$locationProvider.hasPrefix = '!';
Я думаю, что вы настроили $locationProvider как this.Remove это, чтобы избежать !
Ответ 3
app.config(function ($routeProvider, $locationProvider) {
$locationProvider.hashPrefix('page');
$routeProvider.when("/home", {
templateUrl: "templates/home.html",
controller: "homecontroller"
});