2017-06-16 3 views
5

Je suis en train de mettre en place la valeur par défaut pour ma sélection donc j'ai essayéAngular2 [sélectionné] ne fonctionne pas pour définir la valeur par défaut?

[selected]= "selected_choice == 'one'" 

quelque chose comme ça

mais cela ne fonctionne pas.

Les gens ont dit [choisi] ne fonctionne plus donc j'ai aussi essayé [attr.selected], mais ne fonctionne pas aussi bien ..

c'est mon code entier pour une balise select

<select (change)="passValue3()" formControlName="school" class="form-control" required [(ngModel)]="selected_student" class="selectionbox"> 
    <option *ngIf="selected_student == undefined">학년 선택</option> 
    <option *ngFor="let gradetype of gradeTypes" [ngValue]="gradetype" [attr.selected] = "gradetype.gradeType === 'Middle'">{{gradetype.gradeName}}</option> 
</select> 

Comment puis-je configurer l'option par défaut pour le select?

+0

ceci est basé sur ce que vous liez à 'option', voir https://stackoverflow.com/questions/44044746/selected-of-select-doesnt-work-as-excepted-in-angular2, aussi htt ps: //stackoverflow.com/questions/44042797/angular-2-set-selected-on-a-select-option-dropdown/44043801#44043801 pour plus d'informations. – Pengyy

Répondre

-1

Cela ne fonctionne pas car votre sélection est supposée avoir un attribut [(ngModel)].

Il vous suffit de définir cette valeur sur celle que vous voulez sélectionner, et vous devriez être bon.

+0

J'ai déjà ngModel – Lea

+0

Puis donnez-lui la valeur que vous voulez sélectionner. – trichetriche

+0

[selected] = "selected_student === 'Middle'" ne fonctionne pas – Lea

6

Vous devez faire quelque chose comme ceci:

En Markup:

<select placeholder="Sample select" [(ngModel)]="selectedItem"> 
        <option [value]="'all'">View All</option> 
        <option [value]="'item-1'">Item-1</option> 
        <option [value]="'item-2'">Item-2</option> 
       </select> 

dans le composant

selectedItem='all' 
+0

A travaillé pour moi. Merci. – himanshupareek66

0

Voici ma solution:

L'exemple concerne les fuseaux horaires. Depuis le back-end, je suis l'élément suivant de l'objet:

activeItem = { "timezone": { "timeZoneHolder": "Europe", "region": "Europe/Paris (CEST)", "UTC": "UTC+1" }} 

Et le même article de mon modèle ressemble un peu différent comme source est le changement:

{ "timeZoneHolder": "France", "region": "Europe/Paris", "UTC": "UTC +01:00" } 

Comme vous le voyez un peu différent.

Voici donc mon modèle:

timeZones = [{ "timeZoneHolder": "France", "region": "Europe/Paris", "UTC": "UTC +01:00" }, { "timeZoneHolder": "French Polynesia", "region": "Pacific/Gambier", "UTC": "UTC -09:00" }] 

Et voici le travaille mark-up pour la sélection, comme un charme:

<select id="timezone" name="timezone" [(ngModel)]="activeItem.timezone"> 
<option [ngValue]="activeItem.timezone" [selected]="true" disabled hidden>{{activeItem.timezone.region}}</option> 
<option *ngFor="let timeZone of timeZones" 
     [ngValue]="{timeZoneHolder: timeZone.countryName, region: timeZone.timeZone, UTC: timeZone.UTC}"> 
    {{timeZone.timeZone}} 
</option> 

Enjoy :)

1

vous comparez les options de Select by compareWith propriété, Si vous utilisez angulaire 4, peut-être ne sera pas t travaillant sur angulaire 2.

fichier HTML:

<select [compareWith]="byAnimal" [(ngModel)]="selectedAnimal"> 
    <option *ngFor="let animal of animals" [ngValue]="animal"> 
    {{animal.type}} 
    </option> 
</select> 

TS fichier

byAnimal(item1,item2){ 
    return item1.type == item2.type; 
} 

L'un des meilleurs soltion de cette link