我正在尝试在登录身份验证后将消息变量传递给我的ejs模板:
app.post('/login', passport.authenticate('local-login', {
successRedirect : '/profile',
failureRedirect : '/login',
failureFlash : true
}));
然后是get块中的代码:
if(req.isAuthenticated()) res.render('partials/' + name, { message: 'test' });
因此,如果登录失败,将通知用户。 login.ejs partial将显示该消息,但消息未显示在模板中:
<script>var message = "<%=message%>";</script>
<div class="col-sm-6 col-sm-offset-3">
<h1 class="form-fonts"><span class="fa fa-sign-in"></span>Login</h1>
<!-- show any messages that come back with authentication -->
<div ng-if="message.length > 0" class="alert alert-danger">{{message}}</div>
但是,当我在控制器中看到记录的消息时:
app.controller('LoginCtrl', ['$scope', '$http',
function($scope, $http) {
console.log('message: ' + message); // outputs message: test
}]);
答案 0 :(得分:0)
如果你想要你的JSON未转义,你会使用-
;
<script>var message="<%-message%>";</script>
但如果它根本没有模板,那么你还有其他问题。您可能需要使用JSON.stringify(obj)
。