Как отправить оценочное значение с событием клика без формы

CodeHip спросил: 28 марта 2018 в 03:26 в: angular

У меня есть следующее диалоговое окно с рейтинговой системой с 10 звездами. Я хочу отправить значение заполненных звезд, как число с событием click в файл машинописи, чтобы я мог отправить его через http-запрос в базу данных.

<h2 mat-dialog-title>Rate sitter {{ sitter.firstname }} {{ sitter.lastname }}</h2>
<mat-dialog-content class="mat-body-1">
  <ngb-rating [(rate)]="currentRate">
    <ng-template let-fill="fill">
      <span class="star" [class.filled]="fill">&#9733;</span>
    </ng-template>
  </ngb-rating>
  <hr>
  <pre>Rate: <b>{{currentRate}}</b></pre>
</mat-dialog-content>
<mat-dialog-actions>
  <button mat-button mat-dialog-close>Cancel</button>
  <button mat-button (click)="rateSitter()" [mat-dialog-close]="true">Rate</button>
</mat-dialog-actions>

Как я могу сделать это без, чтобы разместить его внутри формы ? Что мне следует передать в качестве аргумента для функции события ?

1 ответ

Fateh Mohamed ответил: 28 марта 2018 в 03:33

вы можете использовать (rateChange)

<ngb-rating
    [(rate)]="rating"
    [starTemplate]="t"
    [readonly]="readOnly"
    [max]="max"
    (hover)="isRating = true; hovered = $event"
    (leave)="isRating = false; hovered = 0"
    (rateChange)="onRateChange($event)">
</ngb-rating>

и создать свою функцию, которая будет получать значение вашей ставки

onRateChange(rating :number) {            // save or send your rating value}    
CodeHip ответил: 28 марта 2018 в 03:43
Я понял, что это работает, если я просто передаю currentValue в качестве аргумента ...
Fateh Mohamed ответил: 28 марта 2018 в 03:49
хорошо, хорошо, что ты заставил это работать