if语句不能与ejs视图引擎一起使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了if语句不能与ejs视图引擎一起使用相关的知识,希望对你有一定的参考价值。
我正在尝试在单个页面中执行具有订单列表的“订单页面”,但它应该具有单独的部分。一个是“已经制作”,另一个是“待定”。它有一个简单的数据库,字段为“isDone”,可以是true或false。因此,正如我想象的那样,如果它是真的,那么它应该出现在“已经制作”部分,但问题是,如果在.ejs中由于某种原因,法规不起作用。
<body class="container">
<main>
<div class="jumbotron">
<h1>Pending</h1>
</div>
<% orders_list.forEach(function(order){ %>
<% if(order.isDone == false) { %>
<div>
<h3><a href='<%= order.url %>'><%= order.name %></a> - <%= order.price %> euru</h3>
<hr>
</div>
<% } %>
<% }) %>
<div class="jumbotron">
<h1>Already made</h1>
</div>
<% orders_list.forEach(function(order){ %>
<% if(order.isDone == true) { %>
<div>
<h3><a href='<%= order.url %>'><%= order.name %></a> - <%= order.price %> euru</h3>
<hr>
</div>
<% } %>
<% }) %>
</main>
</body>
var express = require('express');
var router = express.Router();
var Order = require('../models/order');
router.get('/orders', function(req, res){
Order.find({})
.exec(function(err, list_orders){
if (err) {return next(err)};
// If Successful
res.render('../views/pages/index', {orders_list : list_orders});
});
});
module.exports = router;
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var OrderSchema = new Schema(
{
isDone: {type: Boolean, required: true},
name: {type: String, required: true},
quantity: {type: Number, required: true},
price: {type: Number, required: true},
phone: {type: Number},
});
OrderSchema
.virtual('url')
.get(function(){
return '/order/' + this._id;
});
module.exports = mongoose.model ('Order', OrderSchema);
我希望'isDone'== true订单转到'已经制作'部分,'isDone'== false订单应该转到'Pending'部分。但是甚至没有出现单项。数据库已成功连接,如果没有,则会在页面上显示订单。
答案
在你的if
条件中,你有quote your true
值,因为ejs文件将其作为值而不是布尔值,所以引用你的true
这样,它将工作正常。
<% if(orders_list[i].isDone == 'true'){ %>
<div>
<h3><a href='<%= orders_list[i].url %>'><%= orders_list[i].name %></a> - <%= orders_list[i].price %> euru</h3>
<hr>
</div>
<% } %>
以上是关于if语句不能与ejs视图引擎一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Python:为啥 if-else 一行语句在 else 中不能与 continue 一起使用?