【问题标题】:Node.js express and EJS passing object to templateNode.js express 和 EJS 将对象传递给模板
【发布时间】:2015-07-13 15:03:41
【问题描述】:

我将对象传递给我的模板并希望在 html 中显示对象详细信息。

app.get('/', function (req, res) {
    var user = req.session.passport.user;

    if ( user != 'undefined' ){
        res.render('pages/chat.ejs', {
            user_data: user // get the user out of session and pass to template
        });
    } else {
        res.render('pages/chat.ejs', {
            user_data: false
        });
    }
});

在我的页面/chat.ejs 中:

<% if (!user_data) { %>
            <div class="buttons pull-right clearfix">
                <span data-action="chatLogin" class="pull-right bordered button_blue button">Log in</span>
            </div>
            <% } else { %>
            <div class="buttons pull-right clearfix">
                <span data-action="addChatMessage" class="pull-right bordered button_red button">SEND</span>
                <span class="pull-right bordered button_blue button" id="user_name_details">
                    <% user_data.user_display_name %>
                </span>
            </div>
            <% } %>

但是&lt;% user_data.user_display_name %&gt;里面什么都没有,那么如何在模板中显示对象的详细信息呢?

【问题讨论】:

  • 您确定var user = req.session.passport.user; 包含user_display_name 属性吗?你能console.log吗?
  • { id: 70, social_id: '10073386359655**', social_type: 'facebook', direct_type: 0, direct_username: '0', direct_password: '0', user_display_name: 'Name Lastname', user_name_details: '[object Object]', user_photos: '', registered_ts: 2147483647, last_login_ts: 2147483647, user_ip: 'local', banned_info: 0 }

标签: javascript node.js express ejs


【解决方案1】:

使用 = user_data.user_display_name %>

用于标记控制流。它不输出任何数据

用于输出模板中封闭变量的数据

用于输出模板中变量的未转义值,这样 这样的字符就不会被 HTML 解析器吃掉。

【讨论】:

    猜你喜欢
    • 2020-04-26
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2012-06-24
    • 2019-10-28
    • 1970-01-01
    • 2012-08-13
    • 2016-10-06
    相关资源
    最近更新 更多