Почему мой HTML-файл не может найти метод UpdateSites (ошибка неперехваченной ссылки: UpdateSites не определен)?

#angular #html #typescript #bootstrap-4

#angular #HTML #typescript #bootstrap-4

Вопрос:

Я настроил простое выпадающее меню таким образом:

table.component.html

       <select class="form-control" onchange="UpdateSites(this.value)">
  <!-- //  console.log('FormControlChangeTest'   this.value)"> -->
      <option>France - Paris (Majunga)</option>
      <option>France - Paris (Opus)</option>  
</select>
 

table.component.ts

 export class TableComponent {
 private UpdateSites(siteName){
    console.log('SITE NAME IS'  siteName)
  }  
 

В консоли Chrome у меня эта ошибка:

таблица: 35 Неперехваченная ошибка ссылки: UpdateSites не определена в HTMLSelectElement.onchange (таблица:35)

Я хотел бы знать, что именно я делаю неправильно. то есть: почему html-файл не находит метод UpdateSites.
PS: Из любопытства я разместил UpdateSites вне компонента класса, но в том же файле. Однако это все равно не сработало.

Комментарии:

1. потому что ваш метод является закрытым. Вам нужно сделать свой метод общедоступным, чтобы получить к ним доступ в шаблоне html

2. @JoharZaman нет, они все еще доступны, даже если они частные. Я изменил его на общедоступный, просто чтобы попробовать, и это не сработало

3. У меня также есть другие частные методы :

4. [getRowHeight]=»getRowHeight» это работает отлично!

5. попробуйте это: `(onChange)=»UpdateSites($event.target.value)»

Ответ №1:

Вот рабочий пример: https://stackblitz.com/edit/angular-y7zyqc

Код:

 <select class="form-control" (change)="UpdateSites($event.target.value)">
  <!-- //  console.log('FormControlChangeTest'   this.value)"> -->
      <option>France - Paris (Majunga)</option>
      <option>France - Paris (Opus)</option>  
</select>
 

Я только что изменил html на приведенный выше фрагмент, и теперь он работает. Вы можете проверить это в приведенном выше примере.

Комментарии:

1. Я просто изменил URL-адрес, если его значение не определено в консоли, попробуйте создать новый url. Спасибо

2. Спасибо! Ты спасаешь жизнь! Если кто-нибудь читает это: обязательно напишите change вместо onchange!