web-dev-qa-db-fra.com

Obtenir la valeur de l'option Select dans Angular 4

Comment puis-je obtenir la valeur de l'option de sélection dans Angular 4?

Je veux l'assigner à une nouvelle variable dans le fichier Component.ts. J'ai essayé cela mais rien ne sort.

Pouvez-vous aussi le faire en utilisant [(ngModel)]?

composant.html

<form class="form-inline" (ngSubmit)="HelloCorp(f)" #f="ngForm">
     <div class="select">
         <select class="form-control col-lg-8" #corporation required>
             <option *ngFor="let corporation of corporations" [value]="corporationObj">{{corporation.corp_name}}</option>    
         </select>
             <button type="submit" class="btn btn-primary manage">Submit</button>
     </div>
</form>

composant.ts

HelloCorp() {
const corporationObj = corporation.value;
}
13
Joseph

En général (voir Stackblitz ici: https://stackblitz.com/edit/angular-gh2rjx ):

HTML

<select [(ngModel)]="selectedOption" name="first">
   <option *ngFor="let o of options">
      {{o.name}}
   </option>
</select>
<button (click)="print()">Click me</button>

<p>Selected option: {{ selectedOption }}</p>
<p>Button output: {{ printedOption }}</p>

Manuscrit

export class AppComponent {
  selectedOption: string;
  printedOption: string;

  options = [
    { name: "option1", value: 1 },
    { name: "option2", value: 2 }
  ]
  print() {
    this.printedOption = this.selectedOption;
  }
}

Dans votre cas spécifique, vous pouvez utiliser ngModel comme ceci:

<form class="form-inline" (ngSubmit)="HelloCorp()">
     <div class="select">
         <select [(ngModel)]="corporationObj" class="form-control col-lg-8" #corporation required>
             <option *ngFor="let corporation of corporations"></option>    
         </select>
         <button type="submit" class="btn btn-primary manage">Submit</button>
     </div>
</form>

HelloCorp() {
  console.log("My input: ", corporationObj);
}
22
mahval

export class MyComponent implements OnInit {

  items: any[] = [
    { id: 0, name: 'one' },
    { id: 1, name: 'two' },
    { id: 2, name: 'three' },
    { id: 3, name: 'four' },
    { id: 4, name: 'five' },
    { id: 5, name: 'six}' }
  ];
  selected: number = 0;

  constructor() {
  }
  
  ngOnInit() {
  }
  
  selectOption(id: number) {
    //getted from event
    console.log(id);
    //getted from binding
    console.log(this.number)
  }

}
<div>
  <select (change)="selectOption($event.target.value)"
  [(ngModel)]="selected">
  <option [value]="item.id" *ngFor="let item of items">{{item.name}}</option>
   </select>
</div> 

5
Alexis Tamariz

Code HTML

    <form class="form-inline" (ngSubmit)="HelloCorp(modelName)">
        <div class="select">
            <select class="form-control col-lg-8" [(ngModel)]="modelName" required>
                <option *ngFor="let corporation of corporations" [ngValue]="corporation">
                    {{corporation.corp_name}}
                </option>    
            </select>
            <button type="submit" class="btn btn-primary manage">Submit</button>
        </div> 
    </form>

Code composant 

HelloCorp(corporation) {
    var corporationObj = corporation.value;
}
1
sujithklr93

Il vous suffit de mettre [(ngModel)] sur votre élément select:

<select class="form-control col-lg-8" #corporation required [(ngModel)]="selectedValue">
1
Plog