angular - Ng Bootstrap 根据所选计数对星级颜色进行评级

标签 angular ng-bootstrap

我正在使用自定义评级模板实现星级评级。我想根据当前选择的计数更改所选星星的颜色。例如,4 个选定的星星 = 绿色,3 个选定的星星 = 橙色,...

我在ng-bootstrap的文档中看到StarTemplateContext接口(interface)有两个属性fillindex。基于此属性,我能够更改特定索引上的颜色。例如,第一颗星为绿色,第二颗星为橙色。

 <ngb-rating [starTemplate]="t" [rate]=data.stars></ngb-rating>
<ng-template #t let-fill="fill" let-index="index">
  <span class="star" [class.full]="fill === 100" [class.green]="index === 4" [class.orange]="index === 3">
    <i class="fas fa-square square-star"></i>
  </span>
</ng-template>

但现在我想让所有选定的星星都具有相同的颜色。有什么想法如何实现吗?

最佳答案

诀窍是将ng-template 添加到已知速率值的ngb- rating 标记中。

<div *ngFor="let rating of data">
<ngb-rating [rate]="rating" [max]=4>
  <ng-template let-fill="fill">
    <span class="star color{{rating}}" [class.filled]="fill === 100">&#9733;</span>
  </ng-template>
</ngb-rating>
</div>

在此处查看正在运行的解决方案 https://stackblitz.com/edit/angular-hfevz9-jpxukv

关于angular - Ng Bootstrap 根据所选计数对星级颜色进行评级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55607218/

相关文章:

angular - Nativescript - 错误装饰器中不支持函数调用,但调用了 'NativeScriptRouterModule'

javascript - 带 Electron 的 Angular2 CLI

angularjs - Ng-bootstrap 导入错误 Angular 2

javascript - 如何以一种不会中断使用普通旧式 JavaScript 访问对象的方式导出 TypeScript 类

typescript - Angular 2 typescript Unicode(阿拉伯语)文本支持

angular - 如何使用 Nebular 对话框组件将数据传递给 Angular 组件?

javascript - 我可以动态渲染 NgModal 的 HTML吗

popover - 如何为 ngbpopover 设置边框

angular - 将最短时间设置为 ngb-timepicker Angular 4

html - 尝试显示图像 "blocked:other"时出现以下错误