如何触发单击事件以从 Angular 中的下拉列表中进行选择
How to fire a click event to make a selection from a dropdown list in Angular
我有一个从 ngFor 得到的列表组,如下所示。通过单击任何列出的项目,我可以触发单击事件并按预期进行选择。
<div>
<ul class="list-group my-3">
<li class="list-group-item"
*ngFor="let category of categories"
[class.active]="category.id === this.shopParams.categoryId"
[value]="category.id"
(click)="onCategorySelected(category.id)"
>
{{category.name}}
</li>
</ul>
</div>
但是,一旦我将列表组更改为下拉列表,点击事件似乎从未触发,尽管可以通过从下拉列表中单击来选择项目。
<div>
<select name="cars" class="custom-select mb-3">
<option *ngFor="let category of categories"
[class.active]="category.id === this.shopParams.categoryId"
[value]="category.id"
(click)="onCategorySelected(category.id)"
>
{{category.name}}
</option>
</select>
</div>
这是我在 component.ts
中的点击功能
onCategorySelected(categoryId: number) {
const params = this.shopService.getShopParams();
params.categoryId = categoryId;
this.shopService.setShopParams(params);
}
谁能指出问题所在并帮我改正一下吗?
以下是获取 selected 值的方法:
<div>
<select name="cars" class="custom-select mb-3" (change)="onCategorySelected($event.target.value)">
<option *ngFor="let category of categories"
[value]="category.id"
>
{{category.name}}
</option>
</select>
</div>
注意 select
上的 change
事件。我在 onCategorySelected()
方法中传递 $event.target.value
以获取 selected id。
出于某种原因,click
事件不能直接作用于 option
标签,至少对于来自 html.[=19 的默认 select 标签是这样=]
还有 如果您需要更多可能的解决方案来从 select
中获取值。
我有一个从 ngFor 得到的列表组,如下所示。通过单击任何列出的项目,我可以触发单击事件并按预期进行选择。
<div>
<ul class="list-group my-3">
<li class="list-group-item"
*ngFor="let category of categories"
[class.active]="category.id === this.shopParams.categoryId"
[value]="category.id"
(click)="onCategorySelected(category.id)"
>
{{category.name}}
</li>
</ul>
</div>
但是,一旦我将列表组更改为下拉列表,点击事件似乎从未触发,尽管可以通过从下拉列表中单击来选择项目。
<div>
<select name="cars" class="custom-select mb-3">
<option *ngFor="let category of categories"
[class.active]="category.id === this.shopParams.categoryId"
[value]="category.id"
(click)="onCategorySelected(category.id)"
>
{{category.name}}
</option>
</select>
</div>
这是我在 component.ts
中的点击功能onCategorySelected(categoryId: number) {
const params = this.shopService.getShopParams();
params.categoryId = categoryId;
this.shopService.setShopParams(params);
}
谁能指出问题所在并帮我改正一下吗?
以下是获取 selected 值的方法:
<div>
<select name="cars" class="custom-select mb-3" (change)="onCategorySelected($event.target.value)">
<option *ngFor="let category of categories"
[value]="category.id"
>
{{category.name}}
</option>
</select>
</div>
注意 select
上的 change
事件。我在 onCategorySelected()
方法中传递 $event.target.value
以获取 selected id。
出于某种原因,click
事件不能直接作用于 option
标签,至少对于来自 html.[=19 的默认 select 标签是这样=]
还有 select
中获取值。