Я редактировал этот код в Stackblitz (оригинальная ссылка здесь - первая ссылка на Stackblitz здесь, в разделе «Примитивные значения»: https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/value-binding/) следующим образом:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'my-app',
template: `
<div class="example-config">
Selected Value: {{selectedValue}}
</div>
<kendo-dropdownlist [data]="listItems" [(ngModel)]="selectedValue"></kendo-dropdownlist>
<ng-container *ngFor="let item of listItems;">
<span [ngStyle]="onChangeStyle(item)">{{item}}</span>
</ng-container>
`
})
export class AppComponent implements OnInit {
public listItems: Array<string> = [ "Small", "Medium", "Large" ];
public selectedValue: string = "Medium";
public ngOnInit() {
console.log('onInit');
}
onChangeStyle(item) {
console.log(item);
return {'color': 'red'}
}
}
Я не могупонять причину, по которой нажатие на раскрывающийся список вызывает функцию onChangeStyle () для каждого элемента в массиве, даже не выделяя его. То же самое происходит при нажатии на раскрывающийся список для закрытия списка элементов. Как показано на консоли, каждый щелчок навыпадающее менюù вызывает три выполнения console.log ().