如何从Node服务器获取请求路径变量值到AngularJS控制器

时间:2014-12-12 16:26:01

标签: javascript angularjs node.js express ejs

我希望电子邮件客户端(例如Gmail)中的token路径变量的值通过使用ExpressJS发送到节点服务器的链接,然后在控制器中提供值{{1 }})。

服务器正在显示视图MyController并将reset.ejs值作为参数传递给它。

以下是上述案例的代码:

server.js(ExpressJS)

token

reset.ejs(EJS)

app.get('/reset/:token', function (req, res) {
    User.findOne({ resetPasswordToken: req.params.token, resetPasswordExpires: { $gt: Date.now() } }, function(err, user) {
        if (!user) {
            res.render('reset', {  title: 'Foo  in a Bar', token: req.params.token, invalidTokenMsg: "Password reset token is invalid or has expired" });
        } else {
            res.render('reset', {  title: 'Foo in a Bar', token: req.params.token, invalidTokenMsg: "Choose a strong password" });
        }
    });
});

myapp.js(AngularJS)

<!DOCTYPE html>
<html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp">
<!-- stuff inside head -->
<head>

</head>
<body >
    <!-- stuff inside body-->
</html>

有人告诉我如何在控制器中获得angular.module('myApp', []) .controller('MyController', ['$scope', function($scope) { //how to get the value of token here? }]); 值?

1 个答案:

答案 0 :(得分:1)

理想情况下,请求调用必须来自控制器内部。不会是这样,

angular.module('myApp', [])
.controller('MyController', ['$scope', $http, function($scope) {
    $http.get('reset/:token',{token:'xyzabc'}).then(function(data){
     });
}]);

(或)如果令牌更像是全局对象,则可以使用$ provide.constant并注入其他控制器对象。