Текущее выбранное значение в angular6 материал mat-selection-list - PullRequest
0 голосов
/ 01 июня 2018

Работа с угловым материалом2 mat-selection-list , Возможность определить, выбран текущий параметр или нет [Boolean].

compnenent.html

<mat-selection-list #shoes (selectionChange)="onSelection($event, shoes.selectedOptions)" >
  <mat-list-option *ngFor="let shoe of typesOfShoes" [value]='shoe'>
    {{shoe}}
  </mat-list-option>
</mat-selection-list>

component.ts

export class ListSelectionExample {
  typesOfShoes = ['Boots', 'Clogs', 'Loafers', 'Moccasins', 'Sneakers'];

  onSelection(e, v){
   console.error(e.option.selected,v); 
  }
}

e.option.selected уведомляет, выбрана или не выбрана текущая опция.

Как определить текущее выбранное значение?Пробовал с несколькими комбинациями с ngModel и ngModelChange и click , у меня ничего не работает.

https://stackblitz.com/edit/angular-eyjdfp-qgjhvd?file=app%2Flist-selection-example.ts

Ответы [ 4 ]

0 голосов
/ 06 марта 2019
 <mat-selection-list class="addressList" #userAddressList>
          <mat-list-option *ngFor="let userAddress of userAddressesArray"
          (click)="onAddressSelection(userAddress)">
                  {{userAddress}}
                </mat-list-option>
              </mat-selection-list>
In TypeScript


  private onAddressSelection(selectedItem:any) {
   let  selectedOption = selectedItem;


  } 
0 голосов
/ 01 июня 2018

Используйте привязку события click для mat-list-option:

<mat-selection-list #shoes (selectionChange)="onSelection($event, shoes.selectedOptions)" >
      <mat-list-option *ngFor="let shoe of typesOfShoes" [value]='shoe' (click)="getValue($event)">
        {{shoe}}
      </mat-list-option>
</mat-selection-list>

Компонент TypeScript:

getValue(event){
    console.log(event.target.parentNode.innerText);
}
0 голосов
/ 01 июня 2018

Вы можете получить текущее выбранное значение, получив e.option.value из вашего selectionChange $event

component.ts

current_selected: string;

onSelection(e, v){
   this.current_selected = e.option.value;
}

component.html

<p>
  Current selected value: {{ current_selected }}
</p>

Бонус

Вы можете получить список всех выбранных элементов, вызвав свойство, выбранное в шаблоне shoes.selectedOptions.selected.

component.html

<p>Selected:</p>
<ul>
  <li *ngFor="let i of shoes.selectedOptions.selected">
    {{ i.value }}
  </li>
</ul>

Рабочая демонстрация

0 голосов
/ 01 июня 2018

В вашем компоненте .ts:

export class ListSelectionExample {
 typesOfShoes = ['Boots', 'Clogs', 'Loafers', 'Moccasins', 'Sneakers'];

 selectedShoes;

 onSelection(e, v){
   this.selectedShoes = v.selected.map(item => item.value);

  console.error(e.option.selected,v); 
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...