#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!