【问题标题】:express angular ejs passing variable to template表达角度 ejs 将变量传递给模板
【发布时间】:2023-03-20 22:05:02
【问题描述】:

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

【问题讨论】:

    标签: angularjs express ejs


    【解决方案1】:

    如果你想让你的 JSON 不转义,你可以使用 -;

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-04
      • 2018-04-07
      • 2014-10-25
      • 2016-01-03
      • 2017-11-10
      • 2014-01-30
      • 1970-01-01
      相关资源
      最近更新 更多