Javascript 单击“角度”中的组件时,它不仅一次将整个阵列视为选定阵列
我正在Angular中实现一个评级组件,我将在另一个组件中使用该组件对语言进行评级。 我的意思是它有多好 我的问题是,当我听到一个数组的点击事件时,我会自动选择第二个数组并给它们两个,或者用颜色填充它们。 可以只单击一个事件并为其提供数据。 我在这个stackblitz中基于的star组件代码 这是我的星组件Javascript 单击“角度”中的组件时,它不仅一次将整个阵列视为选定阵列,javascript,html,css,angular,typescript,Javascript,Html,Css,Angular,Typescript,我正在Angular中实现一个评级组件,我将在另一个组件中使用该组件对语言进行评级。 我的意思是它有多好 我的问题是,当我听到一个数组的点击事件时,我会自动选择第二个数组并给它们两个,或者用颜色填充它们。 可以只单击一个事件并为其提供数据。 我在这个stackblitz中基于的star组件代码 这是我的星组件 <button mat-icon-button *ngFor="let ratingId of ratingArr;index as i" [id]="
<button mat-icon-button *ngFor="let ratingId of ratingArr;index as i" [id]="'star_'+i" (click)="onClick(i+1)"
>
<mat-icon>
{{showIcon(i)}}
</mat-icon>
</button>
<mat-error *ngIf="starCount == null || starCount == 0">
</mat-error>
export class StarRatingComponent implements OnInit {
@Input("rating") private rating = 3;
@Input("starCount") public starCount = 5;
@Output() private ratingUpdated = new EventEmitter();
public ratingArr = [];
constructor() {
}
ngOnInit() {
for (let index = 0; index < this.starCount; index++) {
this.ratingArr.push(index);
}
}
onClick(rating: number) {
this.ratingUpdated.emit(rating);
return false;
}
showIcon(index: number) {
if (this.rating >= index + 1) {
return "star";
} else {
return "star_border";
}
}
}
这是我试图展示的组件,并用数据填充
<div *ngFor="let language of subCategory.languages; let i = index">
<div class="col-md-8">
{{language.name}}
<app-star-rating [rating]="language.rate" [starCount]="starCount" (ratingUpdated)="onRatingChanged($event)"></app-star-rating>
</div>
</div>
onRatingChanged(rating) {
this.skills.subCategories.map(test => test.languages.filter(res => {
console.log(res.name);
res.rate = rating;
}));
}
您可以在onRatingChanged函数中通过HTML传递索引以及事件,如下所示:
<div *ngFor="let language of languages; let i = index">
<div class="col-md-8">
{{language.name}}
<mat-star-rating [rating]="language.rate" [color]="starColor" (ratingUpdated)="onRatingChanged($event,i)"></mat-star-rating>
</div>
</div>
@Harmandepsingkalsi这是怎么可能的?你能帮我理解你指的两个数组是什么吗?@Harmandepsingkalsi有两个数组。First有一个id,名称和费率名称:英语,费率:2名称:德语,费率:5费率将显示您在stack blitz中共享的IConStarCode不会谈论您上面提到的问题。它运行完全正常。你能不能也在堆栈闪电战中添加代码?如果可能的话,还包括技能结构object@HarmandeepSinghKalsi好的,我会做的。当tip尝试在stackblitz中添加另一个组件时,u将看到它将选择这两个评级组件。