javascript - Angular 8 和 Kendo DropDownList 组件:为什么单击下拉菜单会导致 ngStyle 在使用 *ngFor?
问题描述
我在 Stackblitz 上编辑了这段代码(原始链接是 Stackblitz 的第一个链接,在“原始值”部分下:https ://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/value-绑定/)以这种方式:
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() 函数;甚至没有选择它。单击下拉菜单以关闭项目列表时也会发生同样的情况。如控制台所示,每次单击下拉菜单都会导致执行 3 次 console.log()。
解决方案
推荐阅读
- r - 在 r 中创建一个与 end 匹配的序列
- android - Android Kotlin 从 Activity 中获取 Fragment 中的 Zxing 条码结果
- python - Pandas 聚合 - 如何根据活动日期查找最近的活动
- c# - 使用 Fiddler 和 Web REST API
- node.js - 为什么 Node.js 事件循环在空闲时这么慢?
- python - TensorFlow Data 不适用于多输入 keras 模型
- json - 使用 JQ 处理嵌套对象映射中的空值
- java - 使用带有 JWT 的 Angular 和 Spring Boot 服务的 PUT 请求出现 403 错误
- amazon-web-services - 已验证的 AWS 简单电子邮件服务显示欺骗警告
- mongodb - 使用 SpringBoot 部署到 AWS 时,Mongo NoSuchMethodError insertOne