我几天前遇到一个问题,我会在网址中随机获取#,如:
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');
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
使用$state.go()
代替$location.path()
。确保将$state
注入您想要使用的地方
$state.go(stateName[,params]) // example $state.go('dashboard.calender')
$state
是由ui-router提供的服务