Как использовать нажмите на выпадающий список в angular? - PullRequest
0 голосов
/ 02 апреля 2020
<div>
    <label> Categories </label>
    <select>
        <option *ngFor = "let category of categories"
                [value] = "category" 
                (click) = "onCategorySelected( category.name )">                
                {{category.name}}

        </option>       
    </select>
</div>

Эта функция onCategorySelected просто не вызывается.
Я должен передать ей выбранное пользователем значение из выпадающего списка.
Какой выход?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2020

Тег option не поддерживает событие click. Вместо этого вы можете использовать событие change для тега select. Вы также назначаете объект атрибуту value в теге option, что неверно. Чтобы назначить объект в качестве значения, вы должны использовать ngValue, если не присваиваете уникальный идентификатор вашему value, например. [value]="category.id".

Попробуйте вместо этого.

<select (change)="onCategorySelected($event.target.value)">    <!-- If you are using ngModel or formControl, get the value from there instead of using $event.target.value -->
    <option *ngFor="let category of categories" [ngValue]="category">
        {{category.name}}
    </option>
</select>
1 голос
/ 02 апреля 2020

Используйте этот способ

<select (change)="selectionChanged($event.target.value)">
    ....
</select>

$event.target.value отправит значение параметра, который вы изменили

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...