从AngularJS中的当前URL读取参数

时间:2013-12-09 12:09:14

标签: angularjs angularjs-scope

是的,有很多关于这个主题的问题。但我无法解决我的问题。

这是我的网址

http://localhost/resetpassword.html/7f18114f-1e1b-4c73-bf0f-f9e6f5bbb293

用户只需点击电子邮件提供的链接即可获得此屏幕。我尝试过使用$ routeParams,$ location.search()但找不到我的参数。

我使用nodejs作为我的网络服务器。从服务器端路由我添加了以下路由来处理请求。

app.get('/resetpassword.html/:resetcode', function (req, res) {
    console.log("reset code: " + req.params.resetcode);
    //res.render('resetpassword.html/' + req.params.resetcode);
    res.render('resetpassword.html', { resetcode: req.params.resetcode });
});

我的角度配置如下

app.config(function ($routeProvider, $locationProvider) {
    $routeProvider
      .when('/', { templateUrl: 'home.html' })
      .when('/resetpassword.html/:resetcode', { templateUrl: '/resetpassword.html', controller: 'ResetPasswordCtrl' })
    .otherwise({ redirectTo: '/' })
    ;

    $locationProvider.html5Mode(true);
})

我可以从$ location访问路径,因此我可以解析查询字符串。但这是我唯一的方式吗?

由于

2 个答案:

答案 0 :(得分:0)

我相信你要找的是RouteParams

http://docs.angularjs.org/api/ngRoute。$ routeParams

答案 1 :(得分:0)

您必须像这样配置您的路线才能使用$routeParams

$routeProvider.when('/resetpassword.html/:resetcode', /**route**/);

然后您应该能够使用$routeParams.resetcode获取重置代码。