Узел: Как отобразить значение для входа, только если есть значение - PullRequest
0 голосов
/ 19 сентября 2019

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

EJS

<input
  type="text"
  class="form-control"
  name="landingTitle"
  value="<% result ? <%= result.landingTitle %> : '' %>" />

Backend

Node

// Initial Render
router.get("/", (req, res) => {
  res.render("pages/dashboard");
});

//When the data is clicked for updation
router.get("/display/:id", (req, res) => {
  MongoClient.connect(
    process.env.ATLAS_URI,
    { useNewUrlParser: true },
    (err, db) => {
      if (err) throw err;
      const dbo = db.db("xxx");
      dbo
        .collection("xxx")
        .findOne({ _id: topic_id }, (err, result) => {
          if (err) throw err;
          res.render("pages/dashboard", {
            result
          });
          db.close();
        });
    }
  );
});

Что я здесь не так делаю?Любой совет будет оценен, спасибо

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

Я думаю, что у вас есть проблема с синтаксисом здесь, попробуйте следующее и посмотрите, работает ли это

value="<% if(result) { %> <%= result.landingTitle %> <% } else { %> '' <% } %>"

И если вы можете использовать не встроенную версию, вы всегда можете сделать следующее

<%
 var value = (result && result.landingTitle)? result.landingTitle : '';
%>


<input
  type="text"
  class="form-control"
  name="landingTitle"
  value="<%= value %>" 
/>
0 голосов
/ 20 сентября 2019

Есть еще один простой и чистый способ.Проверьте, определен ли результат с помощью объекта locals внутри условного оператора.

<input
    type="text"
    class="form-control"
    name="landingTitle"
    value="<%= locals.result ? result.landingTitle  : '' %>" 
/>

Это сработает независимо от того, визуализируете ли вы объект result или нет.

...