我可以使用内置的 angular 指令重复 *ngFor 任意次数吗?
Can I repeat *ngFor an arbitrary number of times using built in angular directives?
下面是我现在的:
<div class="reviews">
<a href="#">
<i *ngIf="product.rating.avgStars >= 1" class="fa fa-star"></i>
<i *ngIf="product.rating.avgStars >= 2" class="fa fa-star"></i>
<i *ngIf="product.rating.avgStars >= 3" class="fa fa-star"></i>
<i *ngIf="product.rating.avgStars >= 4" class="fa fa-star"></i>
<i *ngIf="product.rating.avgStars >= 5" class="fa fa-star"></i>
<span class="amount">({{product.rating.reviewCount}} Reviews)</span>
</a>
正如您可能已经猜到的,它会重复一个星形图标来表示产品的星数。 照原样工作,但是,我觉得一定有更好的方法。理想情况下,我想使用:
<i *ngFor="+product.rating.avgStars" class="fa fa-star"></i>
我知道我可以使用指令或管道来封装此功能;我只是问是否有一种方法可以使用内置 angular 指令任意重复 HTML 标签。
在您用适当数量的星填充的组件中创建一个支持数组
class RatingComponent {
ngOnInit() {
myRating = Array(numberOfStarsFromSomewhere).fill('whatever');
}
}
<i *ngFor="let rating of myRating" class="fa fa-star"></i>
在你的组件文件中创建一个数组类型的变量
export class RenewPackageComponent implements OnInit {
myArr = Array;
}
在您的 Html 文件中
<i *ngFor="let i of myArr(product.rating.avgStars)" class="fa fa-star"></i>
下面是我现在的:
<div class="reviews">
<a href="#">
<i *ngIf="product.rating.avgStars >= 1" class="fa fa-star"></i>
<i *ngIf="product.rating.avgStars >= 2" class="fa fa-star"></i>
<i *ngIf="product.rating.avgStars >= 3" class="fa fa-star"></i>
<i *ngIf="product.rating.avgStars >= 4" class="fa fa-star"></i>
<i *ngIf="product.rating.avgStars >= 5" class="fa fa-star"></i>
<span class="amount">({{product.rating.reviewCount}} Reviews)</span>
</a>
正如您可能已经猜到的,它会重复一个星形图标来表示产品的星数。 照原样工作,但是,我觉得一定有更好的方法。理想情况下,我想使用:
<i *ngFor="+product.rating.avgStars" class="fa fa-star"></i>
我知道我可以使用指令或管道来封装此功能;我只是问是否有一种方法可以使用内置 angular 指令任意重复 HTML 标签。
在您用适当数量的星填充的组件中创建一个支持数组
class RatingComponent {
ngOnInit() {
myRating = Array(numberOfStarsFromSomewhere).fill('whatever');
}
}
<i *ngFor="let rating of myRating" class="fa fa-star"></i>
在你的组件文件中创建一个数组类型的变量
export class RenewPackageComponent implements OnInit {
myArr = Array;
}
在您的 Html 文件中
<i *ngFor="let i of myArr(product.rating.avgStars)" class="fa fa-star"></i>