【发布时间】:2020-04-09 02:21:43
【问题描述】:
我在表单中有一个对象数组,其中可以有 2 个以上的对象。 这是我从服务器获取的数据。
[
{processId : 1, processName : "process1", country : "germany", companyCode:"IB" , companyHiringType:"FRE", masterClauses:[
{clauseName : "tst dummy", description : "dummy desc", clauseId : 1, parentClause : null, titleDisplayFlag :false, textFlag: false, clauseType:"" , processid: 1, subClauseId:null, subClauseSequence:null ,texts :[
{text : "dummy",textId : 1, sequenceNo :1}
]}
]},
{processId : 2, processName : "process2", country : "Finland", companyCode:"IL" , companyHiringType:"Lat", masterClauses:[
{clauseName : "test1", description : "test1Demo", clauseId : 1, parentClause : null, titleDisplayFlag :false, textFlag: false, clauseType:"" , processid: 2, subClauseId:null, subClauseSequence:null ,texts :[
{text : "dummy text",textId : 1, sequenceNo: 1}
]}
]}
]
]
我的 html
中有一个表单<form #filterForm="ngForm" (ngSubmit)="addFilter(filterForm)" autocomplete="off">
<h4 class="h4Header">Filter by
<a href="javascript:void(0)" (click)=closeRightMenu($event) class="filterClose icon x-24 close-icon float-right"></a>
</h4>
<!-- -->
<mat-accordion class="cus-accordion">
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>Company</mat-panel-title>
</mat-expansion-panel-header>
<mat-radio-group required [ngModel]="selected" class="custom-radio block-radio-group" aria-label="Select an option" name="companyCode">
<mat-radio-button class="block-radio-button" *ngFor="let com of companyA;index as i" [value]="com" disableRipple="true">{{com}}</mat-radio-button>
</mat-radio-group>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>Country</mat-panel-title>
</mat-expansion-panel-header>
<mat-radio-group required [ngModel]="selected" class="custom-radio block-radio-group" aria-label="Select an option" name="country">
<mat-radio-button class="block-radio-button" *ngFor="let com of country;index as i" [value]="com.countryName" disableRipple="true">{{com.countryName}}</mat-radio-button>
</mat-radio-group>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>Process</mat-panel-title>
</mat-expansion-panel-header>
<mat-radio-group required [ngModel]="selected" class="custom-radio block-radio-group" aria-label="Select an option" name="companyHiringType">
<mat-radio-button class="block-radio-button" *ngFor="let com of hiring;index as i" [value]="com" disableRipple="true">{{com}}</mat-radio-button>
</mat-radio-group>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>Module</mat-panel-title>
</mat-expansion-panel-header>
<mat-radio-group required [ngModel]="selected" class="custom-radio block-radio-group" aria-label="Select an option" name="processName">
<mat-radio-button class="block-radio-button" *ngFor="let com of moduleA;index as i" [value]="com.processName" disableRipple="true">{{com.processName}}</mat-radio-button>
</mat-radio-group>
</mat-expansion-panel>
</mat-accordion>
<div class="bottomUtil">
<div class="row nomarLR padTB16">
<div class="col-6 padR8">
<button mat-flat-button class="primary-btn btnfullWdth" type="submit">Apply</button>
</div>
<div class="col-6 padL8">
<button mat-flat-button class="secondary-btn btnfullWdth" (click)="testingButton()">Reset</button>
</div>
</div>
</div>
</form>
用户从单选按钮中选择值,其后显示的数据应基于选择的单选按钮。 例如,如果用户选择
processName : "process1", country : "germany", companyCode:"IB" and companyHiringType:"FRE"
我要显示的数据是
clauseName : "tst dummy", description : "dummy desc" and from the nested array I should get text : "dummy"
有没有一种方法可以根据 4 个参数过滤数据?
【问题讨论】:
-
您好,如果您在代码中准备了一个堆栈闪电战,那将非常有帮助。
-
(stackblitz.com/edit/angular-tt9oxu) 这是我正在做的事情,当您选择单选按钮后保存时,控制台有一个对象,我想用它来过滤我的结果。如果您希望我更新代码,请告诉我。我正在使用单选按钮作为表单来推送 ser.services.ts 中 finalArray 中的数据,并且我想使用控制台中的对象进行过滤。
-
我不确定我是否完全理解您想要过滤的内容。例如,在您的对象数组中,如果选择了该收音机,您只想显示
country是germany的对象?另外,该对象数组与您的表单有何关系,对不起,我无法理解。 -
我想显示数据,例如,国家是德国,流程名称是 process1,companyCode 是 IB,companyHiringType 是 FRE,所有这些。就像其中一个在线购物网站一样,您可以在其中选择多个过滤器并相应地显示产品
-
您好!在您的 stackblitz 中,您从服务器获取的数据在哪里? (你把它存放在哪里?)
标签: javascript html arrays angular typescript