如何在EJS中动态添加选项标签

时间:2019-04-29 12:45:35

标签: node.js mongoose ejs

我正在开发一个购物应用程序。需要添加颜色变化。 我不希望有一个产品页面,每种颜色都有一个图像,但只有一个图像和下拉颜色选择,然后添加到购物车。

<div class="form-control">
    <label for="color">Color</label>
       <select name="color" id="color"
           class="<%= validationErrors.find(e => e.param === 'color') 
             ? 'invalid' : '' %>"
            type="string" 
            name="color" 
            id="color" 
            value="<% if (editing || hasError) { %><%= product.color 
       %><% } %>"> 
                        
          <option value="brown">Brown</option>
          <option value="red">Red</option>
          <option value="blue">Blue</option>
          <option value="black">Black</option> 
      </select>

这有效,但不是动态的。

我尝试了此方法,但不起作用:

      <option value="0"> Please choose a color </option>
   <% color.map(item=> { %>
   <option value="<%= item.value%>"> <%= item.color %> </option>
   <% }) %>
 

控制器中的

admin.js看起来像这样

exports.postAddProduct = (req, res, next) => {
  const title = req.body.title;
  const image = req.file;
  const price = req.body.price;
  const color = req.body.color;
  const size = req.body.size;
  const description = req.body.description;
  if (!image) {
    return res.status(422).render('admin/edit-product', {
      pageTitle: 'Add Product',
      path: '/admin/add-product',
      editing: false,
      hasError: true,
      product: {
        title: title,
        price: price,
        color: color,
        size: size,
        description: description
      },
      errorMessage: 'Attached file is not an image.',
      validationErrors: []
    });
  }

谢谢

0 个答案:

没有答案