Как динамически добавлять теги опций в EJS - PullRequest
1 голос
/ 29 апреля 2019

Я работаю над приложением для покупок. Нужно добавить цветовую вариацию. Я не хочу, чтобы была страница товаров с изображением для каждого цвета, но было выбрано одно изображение и раскрывающийся список цветов, а затем добавить их в корзину.

<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: []
    });
  }

Спасибо

...