Get selected value from a drop-down list in Angular

后端 未结 3 1583
遇见更好的自我
遇见更好的自我 2021-02-20 09:30

I am pretty new to Angular and have a requirement where I need to read the selected value from a drop-down list and send the selected value to a component while routing. Can som

相关标签:
3条回答
  • 2021-02-20 10:10

    Try this,
    HTML:

    <a [routerLink]="['/schedulemanagement/autoStartStopVm']" (click)="testEvent($event)">Test Event Link</a>
    

    TS:

    testEvent(event) {
    console.log(event) //check the event object and get your required values.
    }
    
    0 讨论(0)
  • 2021-02-20 10:17

    I believe you are using bootstrap with Angular. Not <select> </select>. An easy solution could be onclick of the link.

    html:

    <div class="dropdown-content">
                    <a (click)="getSelectedDropdown('1') [routerLink]="['/schedulemanagement/autoStartStopVm']">Auto Start</a>
                    <a (click)="getSelectedDropdown('2') href="#">Auto Shutdown</a>
                    <a (click)="getSelectedDropdown('3') href="#">Auto Scale</a>
                </div>
    

    component.ts:

    getSelectedDropdown(link) {
            alert(link);    
      }
    
    0 讨论(0)
  • 2021-02-20 10:18

    Here is the solutions for both your questions:

    • To get dropdown value.
    • To send params through route

    Solution to your first question binding dropdown:

    Component:

    import { Component } from '@angular/core';
    import { Router } from '@angular/router';
    
    
    @Component({
      selector: 'my-app',
      templateUrl: './app.component.html',
      styleUrls: [ './app.component.css' ]
    })
    export class AppComponent  {
    
      constructor(private route: Router){ }
    
      selectedLevel;
      data:Array<Object> = [
          {id: 0, name: "name1"},
          {id: 1, name: "name2"}
      ];
    
      selected(){
        console.log(this.selectedLevel)
      }
     }
    

    HTML:

    <h1>Drop Down</h1>
    <select [(ngModel)]="selectedLevel" (change)="selected()">
        <option *ngFor="let item of data" [ngValue]="item">{{item.name}}</option>
    </select>
    {{selectedLevel | json}}
    

    Here is a working DEMO


    Solution to your second question To send Params to Route:

    From Component:

    this.route.navigate(['schedulemanagement/autoStartStopVm/' + data]);

    So, selected function will be,

      selected(){
        console.log(this.selectedLevel)
       this.route.navigate(['schedulemanagement/autoStartStopVm/' + data]);
      }
    

    From HTML:

    <a [routerLink]="[schedulemanagement/autoStartStopVm/', selectedLevel]">Person</a>
    
    0 讨论(0)
提交回复
热议问题