addEventListener не работает в angular select - PullRequest
4 голосов
/ 11 февраля 2020

Я создаю таблицу, используя primeng и создал таблицу с тремя строками и тремя столбцами, и все данные сохраняются c ..

Несмотря на то, что я использовал внешнюю библиотеку, в конце я пытаюсь пройти только DOM ..

<p-table [value]="getData()">
      <ng-template pTemplate="header">
        <tr>
    <th>Head 1</th>
    <th>Head 2</th>
    <th>Head 3</th>
        </tr>
    </ng-template>
    <ng-template pTemplate="body" let-car>
          <tr>
    <td>Data 1.1</td>
    <td>Data 1.2</td>
    <td><select><option>Select</option><option value="test1">Opt 1</option><option value="test2">Opt 2</option></select></td>
  </tr>
  <tr>
    <td>Data 2.1</td>
    <td>Data 2.2</td>
    <td><select><option>Select</option><option value="test1">Opt 1</option><option value="test2">Opt 2</option></select></td>
  </tr>
          <tr>
    <td>Data 3.1</td>
    <td>Data 3.2</td>
    <td><select><option>Select</option><option value="test1">Opt 1</option><option value="test2">Opt 2</option></select></td>
  </tr>
    </ng-template>
</p-table>

Теперь мне нужно получить значение поля выбора для выбранного элемента в последнем столбце, для которого я написал addEventListener как,

select.addEventListener('change', this.onclick.bind(this))

Но он не работает .. Метод onclick() не срабатывает ..

Я думаю, что проблема может быть связана с ngAfterViewInit, но если я дам его внутрь ngOnInit элементы dom сами по себе недоступны ..

Рабочий Stackblitz: https://stackblitz.com/edit/primeng-tables-dhzmbt

Пожалуйста, помогите мне достичь addEventListener в поле выбора только с использованием pure JS / TS way и шаблон не может быть изменен ..

1 Ответ

0 голосов
/ 11 февраля 2020

...

<td>
 <select(change)="onChange($event)>
  <option>Select</option>
  <option value="test1">Opt 1</option>
  <option value="test2">Opt 2</option>
 </select>
</td>

....

в файле ts

...

onChange(event) {
   console.log(event)
}

...

...