如何在angular中使用$ location.path()进行routesegment调用

时间:2014-09-29 12:34:47

标签: angularjs

我正在使用routesegment提供程序进行角度路由。如何使用$ location.path()进行网址调用。

代码如下:

    FinancialGameApp.config(['$routeSegmentProvider', '$routeProvider', function ($routeSegmentProvider, $routeProvider) {

    // Configuring provider options

    $routeSegmentProvider.options.autoLoadTemplates = true;

    // Setting routes. This consists of two parts:
    // 1. `when` is similar to vanilla $route `when` but takes segment name instead of params hash
    // 2. traversing through segment tree to set it up
    $routeSegmentProvider
        .when('/Home', 's1')
        .when('/Login', 's2')
        .when('/Signup', 's3')
        .when('/UserDetails', 's4')
        .segment('s1', {
            templateUrl: 'Views/home.html',
            controller: 'loginController'
        })
        .segment('s2', {
            templateUrl: 'Views/login.html',
            controller: 'loginController'
        })
        .segment('s3', {
            templateUrl: 'Views/signup.html',
            controller: 'loginController'
        })
         .segment('s4', {
             templateUrl: 'Views/UserDetailsPage.html',
             controller: 'userDetailsController'
         })
    $routeProvider.otherwise({ redirectTo: '/Home' });
}]);

我想使用$ location.path()

通过方法调用调用段s4
 authService.login($scope.loginData).then(function (response) {
        $location.path('/UserDetails');
    }

1 个答案:

答案 0 :(得分:0)

通过在网址前添加#来尝试。

authService.login($scope.loginData).then(function (response) {
        $location.path('/#/UserDetails');
    }

此外,您可以将段名称与getSegmentUrl一起使用以获取哈希值而不是直接网址

authService.login($scope.loginData).then(function (response) {
            $location.path($routeSegment.getSegmentUrl('s4'));
        }