Javascript 从url获取路由参数

Javascript 从url获取路由参数,javascript,php,angularjs,node.js,Javascript,Php,Angularjs,Node.js,我正在尝试从reset pw电子邮件中的链接检索reset pw令牌。该链接将用户发送回我的节点/角度应用程序,其中包含我尝试获取的令牌 Laravel API:电子邮件模板 <td class="content"> <a href="http://localhost:3000/reset-password?token={{$token}}">Reset Your Password</a>

我正在尝试从reset pw电子邮件中的链接检索reset pw令牌。该链接将用户发送回我的节点/角度应用程序,其中包含我尝试获取的令牌

Laravel API:电子邮件模板

            <td class="content">
               <a href="http://localhost:3000/reset-password?token={{$token}}">Reset Your Password</a>
            </td>
对于LocationHashbangUrl(
$location.search('token')
),我知道我使用该令牌获得了正确的url,因为$$absUrl显示了它


为什么我无法使用控制器中显示的方法之一检索
令牌
参数?

您能发布$routeProvider吗?您可以在那里添加token作为参数,然后$routeParams.token将执行您想要的操作。大概是这样的:

$routeProvider.when('/reset-password/:token')
这意味着您的重置密码url将如下所示:

http://localhost:3000/reset-password/{{$token}}

结果表明,在不使用html5/角度路由的情况下,典型的方法

$location.search()
$routeParams
这是行不通的

由于我正在外部传递参数并访问我的节点应用程序(从laravel分发的电子邮件链接),因此我需要使用javascript解析URI

我发现这很容易。因此,以下工作:

'use strict';

angular
    .module('myApp')
    .controller('resetPasswordCtrl', ['$scope', '$window', function($scope, $route, $window) {

        var getURIParams = function(variable) {
            var query = $window.location.search.substring(1);
            var vars = query.split('&');
            for (var i = 0; i < vars.length; i++) {
                var pair = vars[i].split('=');
                if (decodeURIComponent(pair[0]) == variable) {
                    return decodeURIComponent(pair[1]);
                }
            }
            console.log('Query variable %s not found', variable);
        };
        console.log('VAR', getURIParams('token')); //my token param
    }]);
“严格使用”;
有棱角的
.module('myApp')
.controller('resetPasswordCtrl',['$scope','$window',函数($scope,$route,$window){
var getURIParams=函数(变量){
var query=$window.location.search.substring(1);
var vars=query.split('&');
对于(变量i=0;i
您在console.log($routeParams)上得到了什么?@Erazihel请查看上面的编辑您可以发布路由器的代码吗?尝试使用
$route
而不是像这样使用
$routeParams
控制台.log($route.current.params)@Erazihel请参见上面的plzKip,我的应用程序没有使用角度路由。我正在使用node。令牌通过链接从我的Laravel API返回。
$location.search()
$routeParams
'use strict';

angular
    .module('myApp')
    .controller('resetPasswordCtrl', ['$scope', '$window', function($scope, $route, $window) {

        var getURIParams = function(variable) {
            var query = $window.location.search.substring(1);
            var vars = query.split('&');
            for (var i = 0; i < vars.length; i++) {
                var pair = vars[i].split('=');
                if (decodeURIComponent(pair[0]) == variable) {
                    return decodeURIComponent(pair[1]);
                }
            }
            console.log('Query variable %s not found', variable);
        };
        console.log('VAR', getURIParams('token')); //my token param
    }]);