表示角度ejs将变量传递给模板

时间:2014-07-26 23:05:28

标签: angularjs express ejs

我正在尝试在登录身份验证后将消息变量传递给我的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
}]);

1 个答案:

答案 0 :(得分:0)

如果你想要你的JSON未转义,你会使用-;

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

但如果它根本没有模板,那么你还有其他问题。您可能需要使用JSON.stringify(obj)