如果带有脚本标记的EJS中的条件不起作用

时间:2017-05-27 14:29:11

标签: javascript html node.js express ejs

我在这里遇到了一些问题。我将script标记放在IF条件中。 Nah,当条件为TRUE或FALSE时,script标签正在运行。

例如

<% if (info) { %>
    <p><%=info%></p>
            <script type="text/javascript">
            alert("Hi")
            </script>
    <% } %>

结果:

IF = TRUE

alert("Hello world")
<p>Hello world</p>

IF = FALSE

alert("Hello world")
当IF条件为TRUE时,

段落属性正在渲染。但是当IF Conditional为TRUE或FALSE时,script标记正在运行,我希望script标记像HTM​​L属性一样运行。

为什么会这样?感谢

1 个答案:

答案 0 :(得分:0)

好的,我回答我自己的问题。这可以通过添加<% if (info.length > 0) { %>

来解决

因为我的路线文件是这样的

function isAuth(req, res, next){
    var token = req.session.token;
    if(token){
        jwt.verify(token, 'jwtsecret', function(err, decoded){
            if(err){
                req.flash('info', err)
                res.info = req.flash()
                res.redirect('/login')
                return;
            }
            req.decoded = decoded;
            req.session.username = decoded.username
            next();
        })
    }
    else{
        req.flash('info', "Please login first")
        res.redirect('/login')
    }
};

Router.get('/login', function(req, res){
    console.log(req.flash)
    res.render('../views/login', {info : req.flash('info')})
})
<% if (info.length > 0) { %>
  <script type="text/javascript">
    alert("Hello world")
  </script>
  <% } %>