Как отключить опцию из mat-select на основе условия - PullRequest
0 голосов
/ 08 апреля 2019

Я выбираю два коврика, в первом я выбираю тип клиента: индивидуальный или организационный.Если пользователь выбирает Ind Customer, я показываю другой выбор матов.Тем не менее, проблема заключается во втором мат-выберите параметры раскрывающегося списка, я хочу отключить определенные поля ввода.Как этого добиться?

HTML-код для выбора типа клиента

   <mat-form-field>
   <mat-label>Select Customer Type</mat-label>
   <mat-select (onSelectionChange)="getCustType($event)">
   <mat-option *ngFor="let obj of custType" (click)="getCustType(obj)" 
   [value]="obj" > {{ obj.viewValue }}</mat-option>
   </mat-select>
   </mat-form-field>

Код машинописного текста:

custType: any[] = [{ value: 'indCust', viewValue: 'IndividualCustomer' }, { value: 'orgCust', viewValue: 'Organizational Customer' }];

Второй ниспадающий код HTML:

<mat-form-field class="col-sm-3">
    <mat-label>Select Option to Edit</mat-label>
    <mat-select (onSelectionChange)="getoptiontoedit($event)" >
      <mat-option *ngFor="let obj of optiontoeditlist" (click)="getoptiontoedit(obj)" [value]="obj"> {{ obj.viewValue }}</mat-option>
    </mat-select>
  </mat-form-field>

Код машинописного текста для второго раскрывающегося списка:

  optiontoeditlist: any[] = [
{ value: 'address', viewValue: 'Address' },
{ value: 'agentRelationship', viewValue: 'Agent Relationship' },
{ value: 'agreementRelationship', viewValue: 'Agreement Relationship' },
{ value: 'organizationCustomer', viewValue: 'Organization Customer' },
{ value: 'complaint', viewValue: 'Complaint' },
{ value: 'contact', viewValue: 'Contact' },
{ value: 'identification', viewValue: 'Identification' },
{ value: 'individualCustomer', viewValue: 'Individual Customer'}
];

Я хочу отключить / скрыть параметр IndividualCustomer во втором раскрывающемся списке, если пользователь в первом раскрывающемся списке также выбирает организацию «Клиент организации». Я хочу отключить / скрыть OrganazationalCustomer извторое раскрывающееся меню, если пользователь выбирает отдельного клиента в первом раскрывающемся списке.

1 Ответ

0 голосов
/ 08 апреля 2019

Вы можете реализовать канал для вашего второго списка опций, как показано ниже

@Pipe({ name: 'optfilter' })
export class OptionsFilterPipe implements PipeTransform {
   transform(alloptions: any[],firstSelectOpt: any<>) {
     return alloptions.filter(option => option.value.indexOf(firstSelectOpt.value)==-1); // or whatever your comparator condition is this just for indication
   }
 }

Тогда вы можете использовать его как

<mat-option *ngFor="let obj of optiontoeditlist | optFilter: 'selectedFirstOption'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...