67 votes

Sélectionner la valeur de l'option par défaut de typescript angular 6

J'ai une sélection html comme ceci :

<select ng-model='nrSelect' class='form-control'>                                                                
    <option value='47'>47</option>
    <option value='46'>46</option>
    <option value='45'>45</option>
</select>

Comment puis-je sélectionner la valeur par défaut à partir de typescript, par exemple 47 ?

0 votes

Définir nrSelect à la valeur par défaut. A propos, si vous voulez que la liaison fonctionne, vous devez la changer en [(ngModel)] également

67voto

Shadab Faiz Points 189

Vous pouvez le faire :

<select  class='form-control' 
        (change)="ChangingValue($event)" [value]='46'>
  <option value='47'>47</option>
  <option value='46'>46</option>
  <option value='45'>45</option>
</select>

// Note: You can set the value of select only from options tag. In the above example, you cannot set the value of select to anything other than 45, 46, 47.

Ici, vous pouvez plier avec ça.

10 votes

Le lien ne fonctionne plus.

50voto

Fartab Points 762

app.component.html

<select [(ngModel)]='nrSelect' class='form-control'>
  <option value='47'>47</option>
  <option value='46'>46</option>
  <option value='45'>45</option>
</select>

app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  nrSelect = 47
}

28voto

katwhocodes Points 742

Pour le formulaire réactif, j'ai réussi à le faire fonctionner en utilisant l'exemple suivant (47 peut être remplacé par une autre valeur ou variable) :

<div [formGroup]="form">
  <select formControlName="fieldName">
    <option
        *ngFor="let option of options; index as i"
        [selected]="option === 47"
    >
        {{ option }}
    </option>
  </select>
</div>

3 votes

J'ai essayé cela sur Angular 11. Cela ne fonctionne pas. J'ai résolu le problème en définissant du côté de la classe : this.form.setValue({fieldName : 47}) ;

10voto

Saumyajit Points 71

La bonne façon serait :

<select id="select-type-basic" [(ngModel)]="status">
    <option *ngFor="let status_item of status_values">
    {{status_item}}
    </option>
</select>

La valeur doit être évitée dans l'option si la valeur doit être dynamique, car elle définira la valeur par défaut du "champ de sélection". La sélection par défaut doit être liée à [(ngModel)] et les options doivent être déclarées de la même manière.

status : any = "47";
status_values: any = ["45", "46", "47"];

7voto

Sajeetharan Points 108195

Tout d'abord, vous utilisez ng-model qui est considéré comme une syntaxe angularjs. Utilisez [(ngModel)] à la place avec la valeur par défaut

App.component.html

<select [(ngModel)]='nrSelect' class='form-control'>
    <option value='47'>47</option>
    <option value='46'>46</option>
    <option value='45'>45</option>
</select>

App.component.ts

import { Component } from '@angular/core'; 
@Component({ 
    selector: 'my-app', 
    templateUrl: './app.component.html', 
    styleUrls: [ './app.component.css' ] 
}) 

export class AppComponent { 
    nrSelect:string = "47" 
}

0 votes

Vous avez tapé nrSelect comme une chaîne de caractères, et utilisé un nombre littéral, donc je ne pense pas que cela compilerait

0 votes

J'utilise Angular 9 et c'est en fait la seule façon dont j'ai trouvé qu'il fonctionne

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X