Reputation: 133
For example:
http://localhost/#!/login.html
I don't need "!". How would I remove it?
eg:http://localhost/#/login.html
This is my router code :
// 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'
]
});
}]
}
});
I think Angular-ui-router might have a problem, but I can't find the solution.
Thanks!
Upvotes: 12
Views: 8869
Reputation: 112
app.config(function ($routeProvider, $locationProvider) {
$locationProvider.hashPrefix('page');
$routeProvider.when("/home", {
templateUrl: "templates/home.html",
controller: "homecontroller"
});
Upvotes: 0
Reputation: 1579
Hashbang Mode
Hashbang mode is a trick that AngularJS uses to provide deep-linking capabilities to your Angular apps. In hashbang mode (the fallback for html5 mode), URL paths take a prepended # character. They do not rewrite tags and do not require any server-side support. Hashbang mode is the default mode that AngularJS uses if it’s not told otherwise. A hashbang URL looks like:
To be explicit and configure hashbang mode, it needs to be configured in the config function on an app module
We can also configure the hashPrefix, which, in hashbang mode, is the ! prefix. This prefix is part of the fallback mechanism that Angular uses for older browsers. We can also configure this character.
To configure the hashPrefix:
angular.module('myApp', ['ngRoute'])
.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');
}]);
Upvotes: 10
Reputation: 1260
$locationProvider.hasPrefix = '!';
I think you are configured $locationProvider like this.Remove this to avoid the !
Upvotes: 0