# появляется в URL для UI.Router
У меня была проблема несколько дней назад, когда я получал случайный # внутри URL, например:
http://localhost:55462/#/forgotpassword
Я задал вопрос об этом и добавил это в свой раздел app.config:
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
Это не удалило знак #, а просто переместило его, и теперь URL выглядит так:
http://localhost:55462/#forgotpassword
Моя текущая маршрутизация выглядит так:
app.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
.state('login', {
url: '/',
templateUrl: 'partials/login.html',
controller: 'loginController'
})
.state('forgotpassword', {
url: '/forgotpassword',
templateUrl: 'partials/forgotpassword.html',
controller: 'forgotPasswordController'
})
.state('forgotpasswordcode', {
url: '/forgotpasswordcode',
templateUrl: 'partials/forgotpasswordcode.html',
controller: 'forgotPasswordController'
})
.state('forgotpasswordnewpassword', {
url: '/forgotpasswordnewpassword',
templateUrl: 'partials/forgotpasswordnewpassword.html',
controller: 'forgotPasswordController'
})
.state('dashboard', {
url: '/dashboard',
templateUrl: 'partials/dashboard.html',
controller: 'calenderController'
})
.state('dashboard.calender', {
url: '/calender',
templateUrl: 'partials/dashboard.calender.html',
controller: 'calenderController'
})
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
//.otherwise({ redirectTo: '/login', controller: 'loginController' })
});
и когда я перенаправляю на другую страницу, я использую:
$location.path('/forgotpasswordcode');
Может кто-нибудь помочь мне с этим вопросом?
1 ответ
Решение
Использование $state.go()
вместо $location.path()
, Убедитесь, что для инъекций $state
везде, где вы хотите использовать его также
$state.go(stateName[,params]) // example $state.go('dashboard.calender')
$state
это сервис, предоставляемый ui-router