如何正确修复节点中的渲染ejs

时间:2018-12-28 10:13:21

标签: javascript arrays node.js express ejs

我正在从mongodb获取数据并以res.render('user', {data: result})的形式发送。 现在,在 ejs 端,我正在获取此数据字段是一个JSON对象,其中包含名称,电子邮件,密码等字段和出席人数数组。像这样的结果:

{
    name:"Joe",
    password:"jdsj",
    attendance:[
        entry: Date,
        late: true/false
    ]
}

现在,当我像这样循环遍历此数组时:

<% var counter = 0 %>
<% for( var i = 0; i< data.attendance.length/2; 
i+2{%>

    <% if(data.attendance.length===0){%>
        <% counter=0 %> 
        <% } else{ %>
        <%  counter++ %>
    <% } %>    
<% } %>`

当我在页面上获取它时,它没有呈现。如果没有 for 循环,则可以正常渲染,但可以循环而不渲染。

<li><%= data.name%></li>
<li><%= counter %></li>
...

1 个答案:

答案 0 :(得分:0)

您应该像这样在循环内的li元素中添加数据

class Subject {
public:
    Subject() = default;
    Subject(Subject const&) = delete;
    Subject(Subject&& other)
      : state_{std::move(other.state_)},
        move_callbacks_{std::move(other.move_callbacks_)} {
        for (auto& callback : move_callbacks_) {
            callback(this);
        }
    }
    Subject& operator=(Subject const&) = delete;
    Subject& operator=(Subject&& other) {
        state_ = std::move(other.state_);
        move_callbacks_ = std::move(other.move_callbacks_);
        for (auto& callback : move_callbacks_) {
            callback(this);
        }
        return *this;
    }
    ~Subject() = default;

    void doStuff() { state_->doStuff(); }

    State* state_ = nullptr;
    std::vector<std::function<void(Subject*)>> move_callbacks_;
};