Итак, я узнал, как программно запустить один волновой эффект, но как мне вызвать ВСЕ матовые волны, присутствующие в шаблоне?
Я нашел здесь, как это сделать для одного (с помощью удобного stackblitz): https://stackoverflow.com/a/52959049/2362818
Спасибо.
Пожалуйста, покажите нам свою попытку кода





Вы можете использовать ViewChildren и QueryList для запроса всех элементов в компоненте определенного типа. Затем вы можете перебрать их и вызвать launch (или что-нибудь еще, что вам нужно) для всех или любого элемента в коллекции.
Рабочий стекблиц
список-обзор-example.ts
import {Component, ViewChildren, QueryList} from '@angular/core';
import {MatRipple} from '@angular/material';
@Component({
selector: 'list-overview-example',
templateUrl: 'list-overview-example.html',
styleUrls: ['list-overview-example.css'],
})
export class ListOverviewExample {
@ViewChildren(MatRipple)
ripple: QueryList<MatRipple>;
triggerRipple() {
this.ripple.forEach(_ => _.launch({centered: true}));
}
}
список-обзор-example.html
<mat-list role = "list">
<mat-list-item matRipple role = "listitem">Item 1</mat-list-item>
<mat-list-item matRipple role = "listitem">Item 2</mat-list-item>
<mat-list-item matRipple role = "listitem">Item 3</mat-list-item>
</mat-list>
<button mat-raised-button color = "accent" (click) = "triggerRipple()">Trigger Ripple</button>
Работает просто отлично. Спасибо!