получить конкретного пользователя из списка ввода #each - PullRequest
0 голосов
/ 02 октября 2018

Я показываю пользователей в виде списка input type=button, используя {{#each}}, затем, когда будет запущена функция щелчка, чтобы получить значение этого ввода, но я получил неопределенное значение.

Вот код:

app.js

app.get('/search',(req,res)=>{

    data.find({}).then(data=>{

        res.render('./search', {data: data});

    });

search.handlebars

     <table class="blueTable" >
            <thead>
             <tr> 
                <th>Name</th>
             </tr>
            </thead>

            <tbody>
        {{#each data}}
                <tr> 
                    <td>       

                        <input class="button" type="button" onclick="recive()"  id="reciver" name="reciver" value="{{Name}}">
                    </td>

                 </tr>

            {{/each}}

            </tbody>
            </table>

         <script>
              function recive(){
                 var reciver = document.getElementById("reciver").value
                 console.log(reciver)
              }
         </script>

Ответы [ 2 ]

0 голосов
/ 02 октября 2018
     <table class="blueTable" >
        <thead>
         <tr> 
            <th>Name</th>
         </tr>
        </thead>

        <tbody>
    {{#each data}}
            <tr> 
                <td>       
                    <input class="button" type="button" onclick="receive(this)" name="reciver" value="{{Name}}">
                </td>

             </tr>

        {{/each}}

        </tbody>
        </table>

     <script>
          function receive(element){
             var receiver = element.value
             console.log(receiver)
          }
     </script>
0 голосов
/ 02 октября 2018

Почему в Javascript не определено?

undefined является свойством глобального объекта;т.е. это переменная в глобальной области видимости.Начальное значение undefined является примитивным значением undefined.... Метод или оператор также возвращает неопределенное значение, если оцениваемая переменная не имеет назначенного значения.

По сути, она не может ссылаться на часть {{Name}}, которую я предполагаю. Измените {{Name}} на {{this}}

Если у вас есть объект, например, с именем People

{
  people: [
    "Yehuda Katz",
    "Alan Johnson",
    "Charles Jolley"
  ]
}

Notice {{#each people}}, затем измените {{Name}} на {{this}}

<ul class="people_list">
      {{#each people}}
        <li>{{this}}</li>
      {{/each}}
</ul>

Выходы:

<ul class="people_list">
  <li>Yehuda Katz</li>
  <li>Alan Johnson</li>
  <li>Charles Jolley</li>
</ul>

При циклическом просмотре элементов в каждом из них вы можете дополнительно ссылаться на текущий циклиндекс через {{@index}}

{{#each array}}
      {{@index}}: {{this}}
{{/each}}

Кроме того, для итерации объекта {{@key}} ссылается на текущее имя ключа:

{{#each object}}
  {{@key}}: {{this}}
{{/each}}
...