Holen Sie sich den aktuellen Wert, wenn Sie die Auswahloption ändern – Angular2

Lesezeit: 3 Minuten

Benutzer-Avatar
Gary

Ich schreibe eine Angular2-Komponente und stehe vor diesem Problem.

Beschreibung: Ich möchte einen Optionswert im Select-Selektor an seinen Handler senden, wenn die (change) Ereignis ausgelöst wird.

Wie die folgende Vorlage:

<select (change)="onItemChange(<!--something to push-->)">
    <option *ngFor="#value of values" value="{{value.key}}">{{value.value}}</option>
</select>

Komponentenklasse:

export Class Demo{

  private values = [
     {
        key:"key1",
        value:"value1"
     },
     {
        key:"key2",
        value:"value2"
     }
  ]

  constructor(){}
  onItemChange(anyThing:any){
     console.log(anyThing); //Here I want the changed value
  }
}

Wie kann ich den Wert erhalten (ohne jquery zu verwenden)?

Benutzer-Avatar
Mubashir

Es gibt eine Möglichkeit, den Wert aus verschiedenen Optionen zu erhalten. Überprüfen Sie dies Plunker

Komponente.html

<select class="form-control" #t (change)="callType(t.value)">
  <option *ngFor="#type of types" [value]="type">{{type}}</option>
</select>

Komponente.ts

this.types = [ 'type1', 'type2', 'type3' ];

callType(value) {
  console.log(value);
  this.order.type = value;
}

  • Wozu dient dieser Code hier? this.order = { type: ‘type1’ };

    – schau

    22. Juni 2018 um 9:28 Uhr

Benutzer-Avatar
Javed

In Winkel 4 hat das bei mir funktioniert

vorlage.html

<select (change)="filterChanged($event.target.value)">
  <option *ngFor="let type of filterTypes" [value]="type.value">{{type.display}}
  </option>
</select>

Komponente.ts

export class FilterComponent implements OnInit {

selectedFilter:string;
   public filterTypes = [
     { value: 'percentage', display: 'percentage' },
     { value: 'amount', display: 'amount' }
  ];

   constructor() { 
     this.selectedFilter="percentage";
   }

   filterChanged(selectedValue:string){
     console.log('value is ', selectedValue);
   }

  ngOnInit() {
  }
}

  • aber wie bekomme ich “type.display” in filterChanged()

    – Faisal

    20. April 2018 um 9:09 Uhr

Überprüfen Sie, ob dies funktioniert Plunker

<select (change)="onItemChange($event.target.value)">
    <option *ngFor="#value of values" [value]="value.key">{{value.value}}</option>
</select>

  • Danke für die Antwort, eigentlich ist die Antwort von @Mubashir das, was ich will, ohne DOM zu lesen.

    – Gary

    28. Januar 2016 um 8:06 Uhr

  • Kein Problem. Prost !

    – Mikronyks

    28. Januar 2016 um 8:41 Uhr

Für mich hat das Übergeben von ($event.target.value) wie von @microniks vorgeschlagen nicht funktioniert. Was funktionierte, war stattdessen ($event.value). Ich verwende Angular 4.2.x und Angular Material 2

<select (change)="onItemChange($event.value)">
    <option *ngFor="#value of values" [value]="value.key">
       {{value.value}}
    </option>
</select>

HTML

<h3>Choose Your Favorite Cricket Player</h3>
<select #cricket (change)="update($event)">
    <option value="default">----</option>
    <option *ngFor="let player of players" [value]="player">
        {{player}}
    </option>
</select>
  
<p>You selected {{selected}}</p>

Javascript

import { Component } from '@angular/core';
  
@Component({
  selector: 'app-dropdown',
  templateUrl: './dropdown.component.html',
  styleUrls: ['./dropdown.component.css']
})
export class DropdownComponent {
  players = [
    "Sachin Tendulkar",
    "Ricky Ponting",
    "Virat Kohli",
    "Kumar Sangakkara",
    "Jacques Kallis",
    "Hashim Amla    ",
    "Mahela Jayawardene    ",
    "Brian Lara",
    "Rahul Dravid",
    "AB de Villiers"
  ]
  selected = "----"
  
  update(e){
    this.selected = e.target.value
  }
}

app.componen.html

<app-dropdown></app-dropdown>

Benutzer-Avatar
an einer

Sie können verwenden ngValue. ngValue geht Stich und Objekt beides.

Als Objekt übergeben:

<select (change)="onItemChange($event.value)">
    <option *ngFor="#obj of arr" [ngValue]="obj.value">
       {{obj.value}}
    </option>
</select>

Als Zeichenfolge übergeben:

<select (change)="onItemChange($event.value)">
    <option *ngFor="#obj of arr" [ngValue]="obj">
       {{obj.value}}
    </option>
</select>

Benutzer-Avatar
Parikshit Sarkar

Schablone:

<select class="randomClass" id="randomId" (change) = 
"filterSelected($event.target.value)">

<option *ngFor="let type of filterTypes" [value]='type.value'>{{type.display}} 
</option>

</select>

Komponente:

public filterTypes = [{
  value : 'New', display : 'Open'
},
{
  value : 'Closed', display : 'Closed'
}]


filterSelected(selectedValue:string){
  console.log('selected value="+selectedValue)

}

1257690cookie-checkHolen Sie sich den aktuellen Wert, wenn Sie die Auswahloption ändern – Angular2

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy