[英]I am having a problem to convert the following Ejs to pug
我在將以下 Ejs 轉換為哈巴狗時遇到問題
在 admin/edit-product.ejs 中,我們可以對已經擁有的產品進行更改,但我想轉移 ejs 以解決任何問題
<form class="product-form" action="/admin/<% if (editing) { %>edit-product<% } else { %>add-product<% } %>" method="POST">
在 admin.js controller
exports.getAddProduct = (req, res, next) => {
res.render('admin/edit-product', {
pageTitle: 'Add Product',
path: '/admin/add-product',
editing: false
});
};
exports.postAddProduct=(req, res, next) => {
const title=req.body.title;
const imageUrl=req.body.imageUrl;
const price=req.body.price;
const description=req.body.description;
const product=new Product(title,imageUrl,description,price);
product.save();
res.redirect('/');
};
exports.getEditProduct = (req, res, next) => {
const editMode = req.query.edit;
if (!editMode) {
return res.redirect('/');
}
const prodId = req.params.productId;
Product.findById(prodId, product => {
if (!product) {
return res.redirect('/');
}
res.render('admin/edit-product', {
pageTitle: 'Edit Product',
path: '/admin/edit-product',
editing: editMode,
product: product
});
});
};
Pug 支持內聯 JavaScript 代碼,因此您可以在某些屬性插值中使用三元條件,如下所示:
form.product-form(action='/admin/' + (editing ? 'edit' : 'add') + '-product', method='POST')
或者為了更易讀的方法,預先在代碼塊中構建action
路徑並將其存儲在變量中:
-
let action = editing ? 'edit' : 'add'
let actionPath = `/admin/${action}-product`
form.product-form(action= actionPath, method='POST')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.