Интерполяция не работает в атрибуте значения pug - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь использовать приведенную ниже разметку для автоматического заполнения формы.

textarea.form-control(rows='5',id='description' name='description', value='#{product.description}')

, где product - это переменная из файла js. Но форма не заполняет значения

route:

router.get('/update/:id', function(req, res) {
  productApi.getProductById(req.params.id, function(err, product) {

    res.render('crud/update', {product: product});
  });
});

json:

products: [
    {
      "id": 1,
      "description": "Tasty cookies"
    },
    {
      "id": 2,
      "description": "delicious candies"
    }]

1 Ответ

0 голосов
/ 04 октября 2018

Вот как вывести элемент формы:

textarea.form-control(rows='5' id=product.id name='description')= product.description

Примечания:

  • Когда вы ставите = непосредственно после того, как следующий атрибут оценивается каквыражение, чтобы вы могли просто вставить туда имя переменной (без кавычек)
  • Когда вы внутри встроенного выражения, теги интерполяции не будут работать (#{...} и !{...}), поэтому просто используйте обычную переменнуюимена или литералы шаблона (литералы шаблона не работают в IE)
  • Запятые в pug не обязательны, они будут вставлять их при необходимости в вывод, но вы можете оставить их, если хотитеих
...