除非我刷新页面,否则为什么不显示出价格中的星星?

时间:2016-11-30 14:02:10

标签: jquery meteor

我正在使用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.');
        }
   })
}

提交表单后,我可以看到表单被评论内容替换。除非我刷新页面,否则我可以看到评论消息但看不到星级评分。

1 个答案:

答案 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();
});