UNPKG

ng-rating-bar

Version:
211 lines (180 loc) 4.14 kB
# Rating [Stackblitz Demo](https://stackblitz.com/edit/ng-rating-bar?file=src%2Fapp%2Fapp.component.html "Demo") ## Install ``` npm i ng-rating-bar ``` ## Import ``` import { NgRatingBarModule } from 'ng-rating-bar'; @NgModule({ declarations: [...], imports: [ BrowserModule, NgRatingBarModule ] }) ``` ## Simple usage ``` <ng-rating-bar [(value)]="value" [ratingCount]="10" ></ng-rating-bar> Value is {{ value }} ``` ## Properties | Name | Type | Required | Default | | ------------- | ------------- | ------------- | ------------- | | value | number | Required | 0 | | ratingCount | number | Required | 5 | | disabled | boolean | Optional | false | | resetAble | boolean | Optional | false | | colorActive | string | Optional | #edb867 | | colorDefault | string | Optional | #d2d2d2 | | styles | Object | Optional | { fontSize: '28px', backgroundColor: '', margin: '5px', padding: '0px' } | ## Events | Event | Parameter | Description | | ------ | --------- | ----------- | | valueChange | (value: number) | Callback to invoke when value was changed | | hoverChange | (value: number) | Triggered when on hover change | **Note** For angular version below 14 use version `1.0.2` ``` npm i ng-rating-bar@1.0.2 ``` ## Usage with output event ``` <ng-rating-bar [value]="value" (valueChange)="onValueChange($event)" [ratingCount]="10" ></ng-rating-bar> ``` In component ``` onValueChange($event: number) { this.value = $event } ``` ## Disabled rating ``` <ng-rating-bar [value]="5" [ratingCount]="7" [disabled]="true" ></ng-rating-bar> ``` ## Using in reactive form In html view ``` <form [formGroup]="myForm"> <ng-rating-bar [control]="myForm.get('rating')" [ratingCount]="ratingCount" ></ng-rating-bar> <p *ngIf="myForm.get('rating').touched && myForm.get('rating').hasError('required')"> Field is required </p> <p> <button (click)="submitForm()">Submit</button> </p> </form> ``` In Component ``` ngOnInit() { this.myForm = this.fb.group({ rating: [null, Validators.required] }); } submitForm() { this.myForm.get('rating').markAllAsTouched(); console.log(this.myForm.value); } ``` Same example for angular ^14 ``` <form [formGroup]="myForm"> <ng-rating-bar [control]="control" [ratingCount]="ratingCount" ></ng-rating-bar> <p *ngIf="myForm.get('rating').touched && myForm.get('rating').hasError('required')"> Field is required </p> <p> <button (click)="submitForm()">Submit</button> </p> </form> ``` In component define getter for current formControl ``` get control() { return this.myForm.get('rating') as FormControl; } ``` ## Hover output ``` Value is: <b [class.excellent]="hoverValue === 7" [class.good]="hoverValue > 4 && hoverValue < 7" [class.notBad]="hoverValue > 2 && hoverValue <= 4 " [class.bad]="hoverValue <= 2" > {{ hoverValue }} </b> <p> <ng-rating-bar [(value)]="value2" (hoverChange)="hoverValue = $event" [ratingCount]="7" ></ng-rating-bar> </p> ``` ## Set custom color ``` <ng-rating-bar [(value)]="value" [ratingCount]="ratingCount" colorActive="red" colorDefault="gray" ></ng-rating-bar> ``` ## Custom styles ``` <ng-rating-bar value="5" [ratingCount]="10" [styles]="{backgroundColor: '#0965ee', margin: '10px', fontSize: '32px', padding: '2px'}" ></ng-rating-bar> ``` ### New from version ^1.2.0 ### Using html symbols Example of html symbols [https://www.w3schools.com/charsets/ref_utf_symbols.asp](https://www.w3schools.com/charsets/ref_utf_symbols.asp) ``` <ng-rating-bar value="5" [ratingCount]="10" [symbol]="'&#9728;'" [resetAble]="true" ></ng-rating-bar> ``` ### Using font awesome icons If you have installed font awesome into your project you can pass icon as `@Input()` In component ``` export class AppComponent implements OnInit { faIcon = '<i class="fa fa-car"></i>'; constructor() {} .... } ``` In html ``` <ng-rating-bar value="5" [ratingCount]="10" [symbol]="faIcon" ></ng-rating-bar> ```