#出现在UI.Router的URL中

时间:2016-12-17 21:51:54

标签: javascript angularjs routing angular-ui-router

我几天前遇到一个问题,我会在网址中随机获取#,如:

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 个答案:

答案 0 :(得分:1)

使用$state.go()代替$location.path()。确保将$state注入您想要使用的地方

$state.go(stateName[,params]) // example $state.go('dashboard.calender')

$state是由ui-router提供的服务