从JSON数据中进行多个垫选择

时间:2018-09-16 22:49:41

标签: angularjs json angular-material angular6 ngfor

我有一个Angular 6应用程序,该应用程序根据地区选择城市(我用西班牙语称为corregimiento),并根据省份选择地区 this JSON file

  <!-- ***************SELECT Province *************** -->     
<mat-form-field>
    <mat-select placeholder="Provincia" [(ngModel)]="selectedProvince" name='shit' [(value)]="sltdProv">
      <mat-option *ngFor="let item of datas" [value]="item.distritos" >
        {{ item.name }}
      </mat-option>
    </mat-select>
  </mat-form-field>
  <!-- ***************SELECT District *************** -->
  <mat-form-field *ngIf='selectedProvince'>
    <mat-select placeholder="Distrito" [(ngModel)]="selectedDistr" name='District'>
      <mat-option *ngFor="let distrito of sltdProv" [value]="distrito.corregimientos">
        {{ distrito.name }}
      </mat-option>
    </mat-select>
  </mat-form-field>
  <!-- ***************SELECT City *************** -->
  <mat-form-field *ngIf='selectedDistr && selectedProvince'>
    <mat-select placeholder="Corregimiento" [(ngModel)]="selectedCorr" name='Corr'>
      <mat-option *ngFor="let sub of selectedDistr" [value]="sub.name">
        {{ sub.name }}
      </mat-option>
    </mat-select>
  </mat-form-field>

在“组件”文件中,我有:

selectedProvince: string;
selectedDistr: string;
selectedDistrict: string;
datas: any;

ngOnInit() {
const Semester = this.getFile.getJSON();
this.http
  .request("../../assets/jsonFolder/panamaData.json")
  .subscribe((res: Response) => {
    this.datas = res.json().provincia;

这将选择文件中JSON的第一个(也是唯一一个)值。这是一个由13个JSON对象组成的数组,每个对象都是一个省。

我可以在DOM上做到完美。但是,如果我只想将省名保存为变量,它将为我提供JSON对象数组。与各区相同。 唯一的好城市,因为最后一个是字符串。

1 个答案:

答案 0 :(得分:0)

我在您的JSON文件中发现了一些问题。它具有重复的“名称”变量

id:04 -> id:04-1 -> id:04-1-01 

项目。您还可以添加示例链接链接,这将有助于调试问题。