带斜杠的角度获取参数关闭URL

时间:2014-08-21 19:22:02

标签: javascript angularjs url routes

我正在开发一个单页角应用程序。

应用程序从URL获取令牌,然后将其传递给API。目前我的网址如下所示:

www.example.com/?token=3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95

我的代码已经正确使用了角度路由,但是我必须从URL中获取令牌:

var postToken = $location.search().token;

我在配置上有这个:

 app.config(function($locationProvider, $httpProvider, $routeProvider) {
    $routeProvider
    .when('/token/:token', {
        templateUrl : 'views/select-token.html',
        controller : 'selectHold'
    })
    .when('/purchase-hold/token/:token', {
        templateUrl : 'views/purchase-token.html',
        controller : 'purchaseHold'
    });
});

我希望我的网址能够如下所示:

www.example.com/token/3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95

我需要编码才能搜索/token/并抓取旁边的数据,而不是?token=

2 个答案:

答案 0 :(得分:0)

你可以在你的控制器中注入$ routeParams,它将在那里

app.controller('selectToken', function($scope, $routeParams) {
     console.log($routeParams.token);
     // We now have access to the $routeParams here
});

然后Angular将使用以下密钥填充$ routeParams:token,并且将使用加载的URL的值填充key的值。

如果浏览器加载了网址www.example.com/token/3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95

然后$ routeParams对象将如下所示:

{ token: '3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95' }

答案 1 :(得分:0)

像你现在一样建立自己的路线

.when('/token/:token', {templateUrl : 'views/select-token.html', controller : 'selectToken' })

然后在你的控制器中注入$ routeParams并且你将能够访问你的路由参数

.controller('selectToken', function($scope, $routeParams){
  $scope.token = $routeParams.token
}