javascript - Fjerne valg av md-radio-button i Angular 2-app
Jeg har et sorteringsfilter satt opp på Angular-appen min, som bruker radioknapper via md-radio-group slik at brukere kan velge en foretrukket sorteringsmetode for en tabellvisning av data. Radioknappene fungerer som forventet. Jeg har imidlertid også en "Gjenopprett standarder"-knapp som jeg ønsker å bruke for å tømme alle radioknappvalg og gå tilbake til standard sortering. Så langt har jeg hatt problemer med å få radioknappene til å tømme seg.
Slik ser koden for visningen min ut:
<filter-option name="Sort"
placeholder="Select Sorting Option"
[usePlaceholder]="!value"
[visible]="sortFilters.enabled">
<filter-label>{{value | capitalize}}</filter-label>
<filter-menu>
<md-radio-group class="mat-radio-label-content">
<md-radio-button value="alphabetical" class="vert-radiobox-list" (click)="onSortClicked(value = 'alphabetical')">
Alphabetical
</md-radio-button>
<md-radio-button value="reverse alphabetical" class="vert-radiobox-list" (click)="onSortClicked(value = 'reverse alphabetical')">
Reverse Alphabetical
</md-radio-button>
<md-radio-button value="numeric ID" class="vert-radiobox-list" (click)="onSortClicked(value = 'numeric ID')">
Numeric ID
</md-radio-button>
</md-radio-group>
<button md-button class="restore-button" (click)="clearSortingFilters()">Restore Defaults</button>
</filter-menu>
</filter-option>
I komponenten min har jeg dette som initialiserer filteret:
sortFilters =
{
enabled: true,
value: false
};
Og dette er funksjonen som er knyttet til knappen for å tømme sorteringsfiltrene:
clearSortingFilters()
{
this.sendSort.emit(this.value = '');
}
Nå, i funksjonen ovenfor, this.sendSort.emit(this.value='') oppnår det å tømme valget som ble vist i filter-merkelappområdet. Men hvordan tømmer jeg også md-radio-group radioknappvalgene?
Svar #1
Slik bør du endre koden din for at den skal fungere:
html
<md-radio-group class="mat-radio-label-content" [(ngModel)]="selectedValue">
<md-radio-button value="alphabetical" class="vert-radiobox-list" (click)="onSortClicked(value = 'alphabetical')">
Alphabetical
</md-radio-button>
<md-radio-button value="reverse alphabetical" class="vert-radiobox-list" (click)="onSortClicked(value = 'reverse alphabetical')">
Reverse Alphabetical
</md-radio-button>
<md-radio-button value="numeric ID" class="vert-radiobox-list" (click)="onSortClicked(value = 'numeric ID')">
Numeric ID
</md-radio-button>
</md-radio-group>
<button md-button class="restore-button" (click)="clearSortingFilters()">Restore Defaults</button>
ts
selectedValue: string;
clearSortingFilters(){
this.selectedValue = null; // or false or ''
}
Arbeidende plunkr her
Svar #2
Det virker som om du vil legge til NgModel til input-verdien din. Noe som dette: [(ngModel)]="reverse alphabetical". Du vil også kanskje endre OnClick-funksjonen din for å endre verdien av "reverse alphabetical" til false.
