简体   繁体   English

读取的值 <mat-option> 角度的

[英]Read the value of <mat-option> angular

HTML: HTML:

  <mat-icon class="fab fa-raspberry-pi"></mat-icon>
  <mat-form-field>
    <mat-select placeholder="Rpi">
      <mat-option>Choose</mat-option>
      <mat-option *ngFor='let pi of myRpis' [(ngModel)]="RpiIp" ngDefaultControl [value]="pi.RPI_IP"
        (click)="getPins()">
        {{pi.LABEL}}
      </mat-option>
    </mat-select>
  </mat-form-field>

Typescript: I have: 打字稿:我有:

  RpiIp = '';

and

  getPins() {
    console.log(this.RpiIp);
    this.doneFetching = true;
  }

The console prints an empty value (the value do not change). 控制台将打印一个空值(该值不会更改)。 Where is the error? 错误在哪里? why the value is not changing? 为什么价值没有变化?

mat-select will be containing the mat-option , so you have to use ngModel on mat-select. mat-select将包含mat-option ,因此您必须在mat-select上使用ngModel。

Consider the below code: 考虑下面的代码:

<select . . . name="duration" [(ngModel)]="exercisePlan.duration"> 
<option *ngFor="let duration of durations" [value]="duration.value">{{duration.title}}</option> 

您需要将ngModel放置在mat-select ,而不是放置在mat-option

Based on this answer the correct answer looks like this: 根据此答案 ,正确答案如下所示:

 <mat-icon class="fab fa-raspberry-pi"></mat-icon>
      <mat-form-field>
        <mat-select placeholder="Rpi" [(value)]="RpiIp">
          <mat-option>Choose</mat-option>
          <mat-option *ngFor='let pi of myRpis' ngDefaultControl [value]="pi.RPI_IP" (click)="getPins()">
            {{pi.LABEL}}
          </mat-option>
        </mat-select>
      </mat-form-field>

Thanks :D 感谢:D

<mat-form-field>
  <mat-select placeholder="Rpi" [(value)]="RpiIp">
    <mat-option>Choose</mat-option>
    <mat-option *ngFor='let pi of myRpis'  ngDefaultControl [value]="pi.RPI_IP"
      (click)="getPins()">
      {{pi.LABEL}}
    </mat-option>
  </mat-select>
</mat-form-field>

https://stackblitz.com/angular/dybkbybngme?file=app%2Fselect-value-binding-example.ts https://stackblitz.com/angular/dybkbybngme?file=app%2Fselect-value-binding-example.ts

    <mat-icon class="fab fa-raspberry-pi"></mat-icon>
    <mat-form-field>
       <mat-select placeholder="Rpi" >
         <mat-option>Choose</mat-option>
         <mat-option *ngFor='let pi of myRpis' ngDefaultControl [value]="pi.RPI_IP" (click)="getPins()">
          {{pi.LABEL}}
         </mat-option>
       </mat-select>
    </mat-form-field>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM