Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用斜杠从URL获取参数_Javascript_Angularjs_Url_Routes - Fatal编程技术网

Javascript 使用斜杠从URL获取参数

Javascript 使用斜杠从URL获取参数,javascript,angularjs,url,routes,Javascript,Angularjs,Url,Routes,我正在开发一个单页的angular应用程序 应用程序从URL中提取一个令牌,然后将其传递给API。当前我的URL如下所示: www.example.com/?token=3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95 我的代码已经正确地使用了角度路由,但我必须像这样从URL中获取令牌: var postToken = $location.search().token; www.example.com/token

我正在开发一个单页的angular应用程序

应用程序从URL中提取一个令牌,然后将其传递给API。当前我的URL如下所示:

www.example.com/?token=3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95
我的代码已经正确地使用了角度路由,但我必须像这样从URL中获取令牌:

var postToken = $location.search().token;
www.example.com/token/3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95
我在配置中有这个:

 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'
    });
});
我希望我的URL能够如下所示:

var postToken = $location.search().token;
www.example.com/token/3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95

我需要编写什么代码才能搜索
/token/
并获取它旁边的数据,而不是
?token=

您可以在控制器中插入$routeParams,它将在该控制器中可用

app.controller('selectToken', function($scope, $routeParams) {
     console.log($routeParams.token);
     // We now have access to the $routeParams here
});
然后Angular将用:token键填充$routeParams,key值将用加载的URL值填充

如果浏览器加载URL
www.example.com/token/3D2B9BC55A85B641CE867EDAAC8A979173D446525230290FC86A0ED8FF18B95
,

那么$routeParams对象将如下所示:

{ token: '3d2b9bc55a85b641ce867edaac8a979173d4446525230290fc86a0ed8ff18b95' }

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

.when('/token/:token', {templateUrl : 'views/select-token.html', controller : 'selectToken' })
然后在控制器中注入$routeParams,您将能够访问路由参数

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

看,我试过了,但还是不起作用。在我的.config上有
。当('/token/:token',{templateUrl:'views/select token.html',controller:'selectToken'})时,
我将把$routeParams.token放在哪里?在我的配置或控制器中?我不需要改变两件事吗。。。配置和控制器。我不需要在时更改配置
,并将$routeParams添加到我的控制器吗?我必须使用apache设置的回退来让它工作,但现在当我有www.example.com/token/3d2b9bc55a85b641ce867edaac8a979173d446525230290fc86a0ed8ff18b95时,我可以通过查看源代码看到所有代码