javascript - Angular 4 - åpne valg ved klikk på etikett
Hvordan kan jeg åpne select når jeg klikker på label?
<label>filter per category: <span>{{ articleListService.selectedCategory }}</span></label>
<select #category (change)="articleListService.categoryFilter2()" [(ngModel)]="articleListService.formModel.category">
<option value="">All</option>
<option *ngFor="let category of articleListService.laCategoryList" value="{{ category.id }}">
{{ category.name }}
</option>
</select>
Takk for hjelpen, jeg er fortapt
Svar #1
Godt spørsmål, dette er mer en HTML 5-ting enn en Angular-ting. Du vil bruke en for={id}.
Så i din spesifikke kode, vil det se omtrent slik ut.
<label for="category">filter per category: [cat group shows here]</label>
<select id="category" #category (change)="articleListService.categoryFilter2()" [(ngModel)]="articleListService.formModel.category">
<option value="">All</option>
<option *ngFor="let category of articleListService.laCategoryList" value="{{category.id }}">
{{ category.name }}
</option>
</select>- For ytterligere referanse om hvordan man bruker for med etiketter, se den offisielle MDN om etiketter.
Svar #2
Fant en artikkel som ligner på det du spør om, men du må ha etiketten som forelder til valget?
https://medium.com/browserquirks/browserquirk-programmatically-opening-a-select-box-4ca745a8468f
eller kanskje prøv å legge til en malreferanse til select, og deretter @ViewChild('ThatReference') thatRef: ElementRef;
så kanskje når du klikker på etiketten, og det utløser en hendelse for å trigge klikkhendelsen på select via this.thatRef.nativeElement.click()?
