表达角EJS传递变量到模板(express angular ejs passing variable

2019-10-20 13:26发布

我想消息变量传递给我的登录认证后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会显示消息,但消息未在模板中显示:

<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
}]);

Answer 1:

如果你希望你的JSON转义你可以使用一个- ;

<script>var message="<%-message%>";</script>

但如果它不是在所有模板化,你还有其他的问题。 您可能需要使用JSON.stringify(obj)



文章来源: express angular ejs passing variable to template