簡體   English   中英

選擇框不首先顯示所選選項

[英]Select box not showing the selected option first

我正在使用角度6,但無法在選擇框中將所選選項顯示為默認選項,

HTML組成

<select class="form-control selectBox" name="username" #username="ngModel" required ngModel>
<option disabled selected>Select User Name</option>
<option *ngFor="let user of userList" [value]="user.uid">{{user.name }}</option>
</select>

TS:

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

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';
  userList: any = [
    {
      "name" : "Test User"
    },
    {
      "name" : "Hello World"
    },
    {
      "name" : "User Three"
    }
  ]
}

它在選擇框中顯示默認的空值。

如何在行中的選擇框中顯示所選選項的默認設置?

<option disabled selected>Select User Name</option>

Stackblitz: https ://stackblitz.com/edit/angular-wfjmlm

您需要在選擇框中設置一個值,如下所示:

<option disabled selected value="">Select User Name</option>

將使其工作。

[value]=""

<option disabled [value]="" selected>Select User Name</option>

如果要隱藏禁用選項,則添加hidden屬性

<option hidden disabled [value]="" selected>Select User Name</option>

ReactiveForms

我幾乎建議使用ReactiveForms。 這樣,您將獲得更簡潔的代碼以及更強大的選項。

首先將ReactiveForms導入到您的app.module

import {FormsModule, ReactiveFormsModule} from '@angular/forms';
...
   imports: [
      ...
      ReactiveFormsModule
      ...
   ]

然后在您的控制器中:

myForm: FormGroup;
constructor(private fb: FormBuilder){
    this.myForm = this.fb.group({
          username: null
      })
}

在您的模板中:

<form [formGroup]="myForm">
   <select formControlName="username" placeholder="Select Username">
        <option disabled selected>Select User Name</option>
        <option *ngFor="let user of userList" [value]="user.uid">{{user.name }}</option>
  </select>

該解決方案可以在以下找到,如下是html

<select class="form-control selectBox" name="username" [(ngModel)]="selected" required>
 <option disabled selected>Select User Name</option>
 <option *ngFor="let user of userList" >{{user.name }}</option>
</select>
<hr>   {{selected}}

以下是控制器

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

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  name = 'Angular';
  userList: any = [
    {
      "name": "Test User"
    },
    {
      "name": "Hello World"
    },
    {
      "name": "User Three"
    }
  ];
  selected = 'Select User Name';
}

stackblitz

使用棱角材質而不是select和option。 例如:

   <mat-form-field>
      <mat-select placeholder="Select User Name">
        <mat-option *ngFor="let user of userList" [value]="user.uid">
          {{food.viewValue}}
        </mat-option>
      </mat-select>
    </mat-form-field>

此處有更多詳細信息: https : //material.angular.io/components/select/overview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM