html - 为什么选择选项仅在我单击后才显示值?
问题描述
因此,基本上在我加载/重新加载页面后,第一次单击时未显示选择选项,并且由于某种原因直到第二次单击时才显示值我很高兴我对编码仍然是新的一些答案,所以对我温柔:)
import { Component, OnInit } from '@angular/core';
import { Company } from '../_models/company';
import { CompanyService } from '../_services/company.service';
import { AlertifyService } from '../_services/alertify.service';
@Component({
selector: 'app-company',
templateUrl: './companies.component.html',
styleUrls: ['./companies.component.css']
})
export class CompaniesComponent implements OnInit {
selectedCompany: Company;
companies: Company[];
constructor(private companyService: CompanyService, private alertify: AlertifyService) { }
ngOnInit() {
this.loadCompanies();
}
loadCompanies() {
this.companyService.getCompanies().subscribe((companies: Company[]) => {
this.companies = companies;
}, error => {
this.alertify.error(error);
});
}
// selectedChangeHandler(event: any) {
// this.selectedCompany = event.target.value;
// }
}
<div class="col-12 col-md-3 col-xl-2 mt-5 bd-sidebar">
<label for="">Select Company</label> <br>
<select id="select" data-target="#navbarDropdown" [(ngModel)]="selectedCompany" >
<option value="">Select</option>
<!-- <option *ngFor="let value of companies" value="{{value.name}}">{{value.name}}</option> -->
<option *ngFor="let value of companies" [ngValue]="value">{{value.name}}</option>
</select>
</div>
<!-- <select class="form-control col-lg-8" #selectedValue name="selectedValue" id="selectedValue" [(ngModel)]="company" (ngModelChange)="assignCorporationToManage($event)">
<option *ngFor="let value of companies" [ngValue]="company">{{value.name}}</option>
</select> -->
<ul class="list-group list-group-flush">
<li class="list-group-item">Company name: {{selectedCompany.name}}</li>
<li class="list-group-item">Company address: {{selectedCompany.address}}</li>
<li class="list-group-item">Company estimated revenue: {{selectedCompany.estimatedRevenue}} </li>
</ul>
解决方案
数组在被调用companies
之前被声明但没有被初始化loadCompanies()
。因此,最好将模板包装在*ngIf
指令中,以确保数组在使用之前被初始化。
<ng-container *ngIf="companies">
<div class="col-12 col-md-3 col-xl-2 mt-5 bd-sidebar">
<label for="">Select Company</label> <br>
<select id="select" data-target="#navbarDropdown" [(ngModel)]="selectedCompany" >
<option value="">Select</option>
<option *ngFor="let value of companies" [ngValue]="value">{{value.name}}</option>
</select>
</div>
</ng-container>
<ng-container *ngIf="selectedCompany">
<ul class="list-group list-group-flush">
<li class="list-group-item">Company name: {{selectedCompany.name}}</li>
<li class="list-group-item">Company address: {{selectedCompany.address}}</li>
<li class="list-group-item">Company estimated revenue: {{selectedCompany.estimatedRevenue}} </li>
</ul>
</ng-container>
推荐阅读
- git - 在 Azure 中拉取请求并推送
- android - Unity Convert Texture to Texture2d在android设备上需要很多时间
- python - 如何使用 tqdm 通过循环构建多个进程条?
- javascript - for循环中的if语句在js中不起作用
- regex - 正则表达式 - 如果子字符串出现在字符串中的任何位置,则排除模式
- python - 向给定 url 发送 100,000 个请求的最快方法是什么?
- python - Pandas: create a new df from another df contains specific value within group
- python - 带有互斥锁的 QTimer 会导致程序意外退出吗?
- python - re.sub 如何与 python 正则表达式中的管道字符一起工作?
- zebra-printers - 如何在 ZPL(斑马打印机语言)Unicode utf-8 上打印⎓