我正在使用JQuery rateit插件在我的流星应用程序中实现星级评级。我在一个表格中使用了评分,该表格应该留下评论和评分。
{{#if reviewedProvider}}
<hr>
<strong>Review Details</strong>
{{#with providerReviewDetails}}
<p>{{this.reviewMessage}}</p>
<span class="rateit" data-rateit-value="{{this.pointsRated}}" data-rateit-readonly="true"></span>
{{/with}}
{{else}}
<hr>
<form id="reviewProvider">
<div class="form-group">
<label for="writeReview">Write a review</label>
<textarea name="reviewMessage" id="writeReview" rows="3" class="form-control"></textarea><br>
<label>Rate provider</label><br>
<span class="rateit"></span>
</div>
<button class="margin-top-5 btn btn-sm btn-primary" type="submit">Submit</button>
</form>
{{/if}}
提交表格后,表格应替换为评论信息和星级评定。
'submit #reviewProvider': function(event, template) {
event.preventDefault();
var providerId = this.assignedProvider;
var buyerId = this.userId;
var jobId = this._id;
var timeReviewed = new Date();
var ratedPoints = Template.instance().ratingPoints.get();
var reviewMessage = "";
$('textarea[name="reviewMessage"]').each(function() {
reviewMessage += $(this).val();
})
Meteor.call('reviewProvider', providerId, buyerId, jobId, timeReviewed, ratedPoints, reviewMessage, function(error) {
if(error) {
toastr.error('Failed to submit review. Please try again.');
}
})
}
提交表单后,我可以看到表单被评论内容替换。除非我刷新页面,否则我可以看到评论消息但看不到星级评分。
答案 0 :(得分:0)
将您的评分换成模板
<template name="rate">
<span class="rateit" data-rateit-value="{{this.pointsRated}}" data-rateit-readonly="true"></span>
</template>
然后在^ template渲染
时初始化插件Template.rate.onRendered(function() {
$('.rateit').rateit();
});