获取打字稿角度 6 中的 ngb 评级值



我使用了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>

我写的函数如下

somethingChanged(BookingId){    
var num1= ((document.getElementById(BookingId) as HTMLInputElement));
console.log(num1);
}

我在 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);
}

并在函数调用中更改参数:

(click)="somethingChanged(item)"

<ngb-rating name="{{item.BookingId}}" [(ngModel)]="item.Client_Rating"  [(rate)]=item.Client_Rating  (click)="updateClientRatings(item.BookingId,item.Client_Rating)">
<ng-template let-fill="fill" let-index="index" >
<span class="star" [class.filled]="fill === 100" >&#9733;</span>
</ng-template>
</ngb-rating>

这就是我尝试过的,它奏效了!

更改

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

获取点击值!

我相信您正在寻找的是捕获用户选择新评级时发出的事件:rateChange:事件发射器;

在您的 HTML 中:

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

在组件中:

somethingChanged(bookingId) {
console.log(this.item.Client_Rating)
}

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

相关内容

  • 没有找到相关文章

最新更新