所以我有一个包含名称和部门的社区模式,部门字段具有类型数组..我该如何根据名称字段在下拉列表中呈现部门。
这是我的routes.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
这是我的社区架构
router.get('/setup', (req, res,next) => {
Community.find(function(err, data) {
res.render('setup', {
community: data,
});
});
});
这是我的setup.ejs
const CommunitySchema = new mongoose.Schema({
name: {
type: String
},
department: [{
type: String
}]
});
**这是数据**
<label for="fullname"><strong>What department do you belong to ?</strong></label>
<select class="form-control" id="community" name="community">
<optgroup label="Select Table">
<% community.forEach(function (practice) { %>
<option > <%= practice.department.pop() %> </option>
<% }) %>>
</optgroup>
</select>
我正在尝试创建一个依赖下拉列表,希望我的问题得到理解
答案 0 :(得分:0)
请勿在您的阵列上执行pop
操作
以这种方式尝试,代码可能会出现语法错误,但是您应该在departments
数组上循环以在select
元素内创建选项。
<label for="fullname"><strong>What department do you belong to ?</strong></label>
<select class="form-control" id="community" name="community">
<optgroup label="Select Table">
<% community.forEach(function (practice) { %>
<% practice.departments.forEach(function (dept) { %>
<option> <%= dept %> </option>
<% }) %>>
<% }) %>>
</optgroup>
</select>
。
(我的假设如下)
我不确定您的问题的预期输出是什么,但是我认为您希望在选择下拉列表中看到类似下面的内容,如果可以,那么上面的代码将无法给出结果。
|- Engineering
|--- Electrical engineering
|--- Mechanical engineering
|--- Chemical engineering
|- Arts
|--- Philosophy
|--- Theatre arts
|--- English
使用以下内容
<label for="fullname"><strong>What department do you belong to ?</strong></label>
<select class="form-control" id="community" name="community">
<% community.forEach(function (practice) { %>
<optgroup label="<%= practice.name %>">
<% practice.departments.forEach(function (dept) { %>
<option> <%= dept %> </option>
<% }) %>>
</optgroup>
<% }) %>>
</select>