Angular 获取Type6中的ngb额定值

Angular 获取Type6中的ngb额定值,angular,angular6,ng-bootstrap,rating,Angular,Angular6,Ng Bootstrap,Rating,我已经使用了ngb评级组件,点击我正在调用一个函数。这段代码在forloop中,所以我必须通过id获取数据 <ngb-rating [(rate)]=item.Client_Rating id={{item.BookingId}}> <ng-template let-fill="fill" let-index="index"> <span class="star" [class.filled]="fill === 100" (click)="

我已经使用了ngb评级组件,点击我正在调用一个函数。这段代码在forloop中,所以我必须通过id获取数据

<ngb-rating [(rate)]=item.Client_Rating id={{item.BookingId}}>
    <ng-template let-fill="fill" let-index="index">
        <span class="star" [class.filled]="fill === 100" (click)="somethingChanged(item.BookingId)">&#9733;</span>
    </ng-template>
</ngb-rating>
我在num1变量中得到的值是

<ngb-rating aria-valuemin="0" class="d-inline-flex" role="slider" tabindex="0" ng-reflect-rate="9" id="179" aria-valuemax="10" aria-valuenow="9" aria-valuetext="9 out of 10">

我只想要值9的。如何获得它?

试试看

somethingChanged(item){    
    var num1= item.Client_Rating;
    console.log(num1);
}
并在函数调用中更改参数:

(单击)=“某物更改(项目)”

这就是我尝试过的,它成功了

变化

<ng-template let-fill="fill" let-index="index">
 <span class="star" [class.filled]="fill === 100 (click)="somethingChanged(index+1)">
  &#9733;
 </span>
</ng-template>


我相信您正在寻找的是捕捉当用户选择新评级时发出的事件:rateChange:EventEmitter

在HTML中:

<ngb-rating [(rate)]="item.Client_Rating" (rateChange)="somethingChanged(item.BookingId)"></ngb-rating>

如果使用(单击),则发出的事件将在(rateChange)事件之前,因此这就是您获取旧值的原因。

能否在stackbliz编写工作示例?是的,它给出了值,但最后一个值不是更新的值。如果先前的值是2,那么我改为6,它会给我2,然后再次,如果我改为8,它会给我6
<ng-template let-fill="fill" let-index="index">
 <span class="star" [class.filled]="fill === 100 (click)="somethingChanged(index+1)">
  &#9733;
 </span>
</ng-template>
<ngb-rating [(rate)]="item.Client_Rating" (rateChange)="somethingChanged(item.BookingId)"></ngb-rating>
somethingChanged(bookingId) {
   console.log(this.item.Client_Rating)
}