首页 > 解决方案 > 如何在node.js中为jade中的每个循环制作

问题描述

我想将一个数组传递给create.jadeinSelect但它不能显示coursesdropdown. 这是代码。

subjectServices.create = function (req, res) {
    return courseStorage.list()
     .then(courses => {
        console.log("aa", courses)
        // let course = courses
        res.render('../views/subjects/create', {course: courses});
     })
};

console它显示了课程,但它select dropdown不能显示任何课程。不知道为什么不能显示。请帮我解决这个问题。这是 的代码create.jade

include ../layout/main

block content
style(type='text/css').
  .main-header .navbar{
  background-color: #3c8dbc;
  }
title Admin Dashboard
.wrapper
  .content-wrapper
    body
      .container
        h3
          //- a(href='/employees') Employee List
          a.btn.btn-primary(href="/subjects")  Subject List
        h1 Create New Subject
        form.form-horizontal(action='/subjects/save', method='post')
          .form-group
            .col-md-1
              label(for='subjectName') Subject Name*
            .col-lg-10
              input#subjectName.form-control(type='text', name='subjectName', placeholder='Subject Name')
          .form-group
            .col-md-1
              label(for='courseSelectbox') Choose Course*
              select#courseSelectbox.form-control(name='course')
              if courses != null && courses.length > 0
                for course in courses
                    option(value='') --Select One--
                    option(value='#{courses._id}') #{ courses.name }
          br
          br
          button.btn.btn-primary(type='submit') Create

标签: node.jspugtemplate-engine

解决方案


您传递给 Pug 模板的本地名称是course,而不是courses。尝试将其更改为courses

res.render('../views/subjects/create', {courses: courses});

然后在 Pug 循环中,使用单数访问各个属性:

for course in courses
    option(value='#{course._id}') #{course.name}

推荐阅读