Angular:从Http post预加载树表数据

时间:2019-01-25 12:44:02

标签: angular primeng primeng-treetable

嘿,我想在组件加载后预加载树表结构数据,然后根据form(输入框并选择dropdown)过滤数据。两者对服务类的后端都有相同的http post调用。

因此,首先,它将使用空参数预加载数据并加载所有数据,然后根据表格的形式将其筛选并加载数据。

组件类

  import {Component, OnInit} from "@angular/core";
import {FormControl, FormGroup} from "@angular/forms";
import {SignaalFilterJsonSchema} from "../../../models/signalen/signaal-filter";
import {OverzichtSignalService} from "../service/overzicht-signal.service";
import {SignalenBrinJsonSchema} from "../../../models/signalen/signalen-brin";



@Component({
  selector: 'overzicht-signalen',
  templateUrl: './overzicht-signal.component.html',
  styleUrls : ['./overzicht-signal.component.css']
})



export class OverzichtSignalenComponent implements OnInit{
  signals: any [] ;
  jaren: any[];
  types: any[];
  signalFilters :SignalenBrinJsonSchema[]
  selectieForm: FormGroup
  filterSignaal: SignaalFilterJsonSchema={}
  // listFilterBrin:string
  // listFiltervestiging:string


  constructor(private signalService: OverzichtSignalService )
{
}
  ngOnInit() {

    this.signals = [
      {code:"1", label:"1 niet ingeschreven op teldatum"},
      {code:"2", label:"2 geen toestemming voor opleiding"},
      {code:"3", label:"3 vestiging niet in bedrijf"},
      {code:"4", label:"4 leerjaar niet toegestaan"},
      {code:"5", label:"5 te oud voor praktijkonderwijs"},
      {code:"6", label:"7 Dubbele inschrijving, niet bekostigd"},
      {code:"7", label:"8 Dubbele inschrijving, wel bekostigd"},
      {code:"8", label:"9 Indicatie bekostigbaar niet gezet"},
      {code:"9", label:"10 Geen regulier omdat categorie 1 nieuwkomer"},
      {code:"10",label:"11 LWOO/PRO niet toegestaan"},
      {code:"11",label:"12 Ambtshalve vaststelling"},
      {code:"12",label:"13 Ambtshalve vaststelling verwijderd"}
    ];
    this.jaren =[
      {code:"1", label:"2019"},
      {code:"2", label:"2018"}
    ];

    this.types=[
      {code:"1", label:"Alle"},
      {code:"2", label:"Regulier"},
      {code:"3", label:"Nieuwkomer"}
    ];

    this.selectieForm = new FormGroup({
      identificatieBrin: new FormControl(""),
      identificatieVestiging: new FormControl(""),
      identificatieSelectieSignals: new FormControl(""),
      identificatieSelectieJaar: new FormControl(""),
      identificatieSelectieSoort: new FormControl("")
    });

    this.signalService.getSignalenBrins(this.filterSignaal).subscribe(x=>{
      this.signalFilters=x;
    });
    //this.onIdentificatieSelectieChange()
    this.selectieForm.valueChanges.subscribe(x => this.onIdentificatieSelectieChange())
  }


  onIdentificatieSelectieChange() {

    const brins = this.selectieForm.controls.identificatieBrin.value;
    const vestiging = this.selectieForm.controls.identificatieVestiging.value;
    const signals =  this.selectieForm.controls.identificatieSelectieSignals.value;
    const jaar =  this.selectieForm.controls.identificatieSelectieJaar.value;
    const soort = this.selectieForm.controls.identificatieSelectieSoort.value;

    const changeFilterSignaal: SignaalFilterJsonSchema ={
      brin : brins,
      vestiging : vestiging,
      signaalCode: signals,
      bekostigingsjaar: jaar,
      soortTeldatum: soort
    };

    this.signalService.getSignalenBrins(changeFilterSignaal).subscribe(x => {
      this.signalFilters =x;
    });
  }

}

HTML:

<header class="row">
  <div class="col-lg-10 col-lg-offset-1">
    <div class="content content--header">
              <h1>Overzicht Signalen</h1>
    </div>
  </div>
</header>
    <article>
      <form    id="selectieFrm" name="selectieFrm"  (ngSubmit)="onSubmit()" [formGroup]="selectieForm">
      <div class="row">
        <div class="col-md-12">
          <div class="content-background">
            <div class="content">

              <div class="row">
                <div class="col-md-2">
                  <div class="input">
                    <input type='text' placeholder="BRINNaam" formControlName="identificatieBrin" class="input_control input_control--text input_control--validate input_control--large">
                  </div>
                </div>
                <div class="col-md-2">
                  <div class="input">
                    <input type="text" placeholder="Vestiging" formControlName="identificatieVestiging" class="input_control input_control--text input_control--validate input_control--large">
                  </div>
                </div>
                <div class="col-md-3">
                  <div class="input">
                    <select id="signalType"  class="input_control input_control--m  input_control--select" formControlName="identificatieSelectieSignals">
                      <option value="" disabled hidden>Choose Signal </option>
                      <option  *ngFor="let signal of signals" [value]="signal.code">{{signal.label}}</option>
                    </select>
                  </div>
                </div>
                <div class="col-md-2" >
                  <div class="input">
                    <select id="jaar" class="input_control input_control--m  input_control--select " formControlName="identificatieSelectieJaar">
                      <option value="" disabled hidden>Choose BeKostiging Jaar </option>
                      <option [value]="jaar.code" *ngFor="let jaar of jaren">{{jaar.label}}</option>
                    </select>
                  </div>
                </div>
                <div class="col-md-2" >
                  <div class="input">
                    <select id="teldatumsoort" class="input_control input_control--m  input_control--select" formControlName="identificatieSelectieSoort">
                      <option value="" disabled hidden>Choose Teldatum Soort </option>
                      <option [value]="type.code" *ngFor="let type of types">{{type.label}}</option>
                    </select>
                  </div>
                </div>

              </div>
            </div>
          </div>
        </div>
      </div>
      </form>
        <collapsible-brin-vestiging [signalFilter]="signalFilters"></collapsible-brin-vestiging>
    </article>

SignaalFilterJsonSchema:

export interface SignaalFilterJsonSchema {

  brin?: string;

  vestiging?: string;

  signaalCode?: string;

  bekostigingsjaar?: number;

  soortTeldatum?: string;
  }

在这种情况下我应该如何进步?

0 个答案:

没有答案