簡體   English   中英

nodejs中的數據排序無法正常工作

[英]data sorting in nodejs isn't working properly

我正在研究一個顯示來自后端的數據的滑塊。 使用“狀態:1,dueDate:1”功能。 它以相反的順序顯示,但我需要它根據首先顯示“待定(btn-success)”然后“已完成(btn-warning)”的狀態顯示這些幻燈片

注意:滑塊也有(待定的“btn-danger”),必須先顯示),它沒有狀態

首先顯示(btn-danger),然后顯示狀態=掛起(btn-success),然后狀態=完成(btn-warning)。

滑塊截圖: https : //ibb.co/jJqLbQQ

控制器代碼:

  var renderListOfMeetings = async function(req, res) {
try {
  checkRoles(req);
  let meetings = await Meeting.find({}).sort({ status: 1, date: 1 });
  let tasks = await Task.find({}).sort({ status: 1, dueDate: 1 });

  res.render("meeting", {
    title: "Meetings",
    pdfUrl: config.pdfUrl,
    isAdmin: req.roleAdmin,
    sectionBCommittee: [],
    meetings: meetings,
    tasks: tasks
  });
} catch (ex) {
  console.log(ex.message);
}

};

前端代碼:

  function setTasksCarausel() {
    html = '<div class="carousel-inner no-padding">';
    let tasksCopy = utils.setSliders(Array.from(tasks));
    tasksCopy.map((tasks, index) => {
        html += `<div class="item ${index === 0 ? 'active' : ''}">`;
        tasks.map(t => {
            html += `
                <div class="col-md-3 col-sm-6 col-xs-12 pending-task-btn" onclick="handleClickTaskItem('${t._id}')">
                    <span href="" class="btn ${t.status === 'completed' ? 'btn-warning' : (new Date(t.dueDate) < new Date() ? 'btn-danger' : 'btn-success')} btn-lg dashboard-icon" style="width: 200px; height: 150px;">
                        <p style="padding-top: 10px; font-size: 20px; font-weight: bold;">${t.type}</p>
                        <p style="padding-top: 12px; font-size: 20px; font-weight: bold;">${utils.convertDate(t.dueDate)}</p>
                        <p style="padding-top: 10px; font-size: 20px; font-weight: bold;">( ${t.status } )</p>
                    </span>
                </div>
            `;
        });
        html += `</div>`;
    })


  function setMeetingCarausel() {
    let meetingsCopy = utils.setSliders(Array.from(meetings));

    let html = '<div class="carousel-inner no-padding">';

    meetingsCopy.map((meeting, index) => {
        html += `<div class="item ${index === 0 ? 'active' : ''}">`;
        meeting.map(m => {
            let className = m.status === 'completed' ? 'btn btn-warning btn-lg dashboard-icon' : 'btn btn-success btn-lg dashboard-icon'
            html += `
                <div class="col-md-3 col-sm-6 col-xs-12" onclick="handleClickMeetingItem('${m._id}')">
                    <span href="" class="${className}" style="width: 200px; height: 150px;">
                    <p style="padding-top: 10px; font-size: 19px; font-weight: bold;">${m.subject}</p>
                    <p style="padding-top: 12px; font-size: 19px; font-weight: bold;">${utils.convertDate(m.date)}</p>
                    <p style="padding-top: 10px; font-size: 19px; font-weight: bold;">( ${m.status} )</p>
                    </span>
                </div>
            `;
        });
        html += `</div>`;
    })

完整截圖: https : //ibb.co/SKVh4Jp

 let meetings = await Meeting.find({}).sort({ status: 1, date: -1 });
 let tasks = await Task.find({}).sort({ status: 1, dueDate: -1 });

請嘗試以上

使用-1獲取最新文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM