Компонент Angular 8 и Kendo DropDownList: почему щелчок по раскрывающемуся меню вызывает «пересчет» ngStyle внутрис * ngFor? - PullRequest
0 голосов
/ 06 октября 2019

Я редактировал этот код в 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 ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...