2015-07-13 3 views
0

Я передаю объект своему шаблону и хочу отображать детали объекта в html.Node.js express и EJS, передающий объект в шаблон

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> 
      <% } %> 

но нет ничего в <% user_data.user_display_name %> так как отображать детали объекта в шаблоне?

+0

Вы уверены, что 'var user = req.session.passport.user;' содержит свойство user_display_name'? Можете ли вы console.log? –

+0

'{ID: 70, social_id: '10073386359655 **', social_type: 'facebook', direct_type: 0, direct_username: '0', direct_password: '0', USER_DISPLAY_NAME: 'Имя Фамилия', user_name_details: '[объект Object]', user_photos: '', registered_ts: 2147483647, last_login_ts: 2147483647, user_ip: 'местный', banned_info: 0} ' –

ответ

1

< Используйте% = user_data.user_display_name%>

<%%> используется для маркировки потока управления .. Это не выводит любые данные

<% =%> используется для вывода данные закрытой переменной в шаблоне

<% -%> используется для вывода неопределенного значения переменной в шаблоне, чтобы символы, подобные < и>, не попадали в парсер HTML.

Смежные вопросы