我希望通过使用 ExpressJS 将电子邮件客户端(例如 Gmail)内部的 token
路径变量的值通过链接发送到 Node 服务器,然后在 Controller 中提供该值( MyController
)。
服务器正在显示 View reset.ejs
并将 token
值作为参数传递给它。
以下是上述案例的代码:
server.js (ExpressJS)
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" });
}
});
});
reset.ejs (EJS)
<!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>
myapp.js (AngularJS)
angular.module('myApp', [])
.controller('MyController', ['$scope', function($scope) {
//how to get the value of token here?
}]);
有人告诉我如何获取 Controller 中的token
值?
最佳答案
理想情况下,请求调用必须源自 Controller 内部。是不是会这样,
angular.module('myApp', [])
.controller('MyController', ['$scope', $http, function($scope) {
$http.get('reset/:token',{token:'xyzabc'}).then(function(data){
});
}]);
(或者)如果 token 更像是一个全局对象,您可以使用 $provide.constant 并注入(inject)到其他 Controller 对象中。
关于javascript - 如何获取从 Node 服务器到 AngularJS Controller 的请求路径变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447869/