не може да изобрази в ejs шаблон на node.js

Срещнах проблем с wield в node.js ejs шаблон. Ето експресния код.

app.get('/course',function(req,res){
     var locals = {};
     locals.course = {
            title: 'data.title',
            city: 'data.city',
            desc: 'data.desc',
            id: 'data._id'
     };         
     res.render('course_description',locals );
});

Ето кода на шаблона

<div >
  <article>
    <% if(locals.course) { %>           
            <div><% locals.course.title %></div>
            <div><% locals.course.city %></div>
            <div><% course.city %></div>
            <div><% course.title %></div>   
    <% } %>
  </article>    
</div>

когато res.render('course_description',locals); се задейства, локалните данни трябва да бъдат предадени на шаблона, но по някаква неизвестна причина не работи за този пример.

всичко, което имам, е 4 празни

<div >
  <article>         
            <div></div>
            <div></div>
            <div></div>
            <div></div> 
  </article>    
</div>

някой срещал ли е преди този проблем с wield, толкова съм объркан, направих някои работещи примери преди, но когато сравня това с други работещи, все още не мога да намеря причината.

Имайте предвид, че използвам най-новите ejs и express


person user824624    schedule 04.04.2013    source източник


Отговори (1)


<% ... %> са за кодови конструкции, а не за изход.

Опитайте тази:

<div>
  <article>
    <% if (locals.course) { %>
      <div><%= locals.course.title %></div>
      <div><%= locals.course.city %></div>
      <div><%= course.city %></div>
      <div><%= course.title %></div>
    <% } %>
  </article>
</div>
person robertklep    schedule 04.04.2013
comment
Верен отговор. Трябва да съм по-бърз ;) - person Maroshii; 04.04.2013
comment
Да, работи, благодаря Робърт. но имам някои други примери, работещи по предишния начин. каква е разликата? - person user824624; 04.04.2013
comment
<% .. %> се използва за изпълнение на код. Ако този код генерира изход, този изход ще бъде изобразен, но няма да изобрази само променлива, подадена към него; за това имате нужда от <%= .. %> или <%- .. %>. - person robertklep; 05.04.2013