Я использую угловой 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а>
5 ответов
Вам необходимо установить значение в поле выбора следующим образом:
<option disabled selected value="">Select User Name</option>
Будет ли это работать.
Используйте угловой материал вместо 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
Решение может быть найдено следующим образом 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';
}
Реактивные формы
Я очень рекомендую использовать 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>
Добавить [value]=""
<option disabled [value]="" selected>Select User Name</option>
И если вы хотите скрыть опцию отключения, добавьте атрибут hidden
<option hidden disabled [value]="" selected>Select User Name</option>
Похожие вопросы
Новые вопросы
javascript
Для вопросов, касающихся программирования в ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (исключая ActionScript). Этот тег редко используется отдельно, но чаще всего ассоциируется с тегами [node.js], [jquery], [json] и [html].