Вы должны использовать событие changed
API SelectionModel
, которое возвращает событие SelectionChange
, генерируемое при изменении выбора, вместо переменной selected
API SelectionModel
.
Интерфейс SelectionChange
имеет следующие свойства (взятые из исходного кода):
/**
* Event emitted when the value of a MatSelectionModel has changed.
* @docs-private
*/
export interface SelectionChange<T> {
/** Model that dispatched the event. */
source: SelectionModel<T>;
/** Options that were added to the model. */
added: T[];
/** Options that were removed from the model. */
removed: T[];
}
Затем можно добавить или удалить вес из свойства totalWeight
следующим образом:
totalWeight = 0;
ngOnInit(): void{
this.selection.changed.subscribe(change => {
console.log('Added items:', change.added);
console.log('Removed items:', change.removed);
console.log('Source selection model:', change.source);
change.added.forEach(element => {
this.totalWeight += element.weight;
})
change.removed.forEach(element => {
this.totalWeight -= element.weight;
})
});
}
Обновленная демоверсия