2016-11-30 1 views
0

내 유성 응용 프로그램에서 별 등급을 구현하는 데 JQuery rateit 플러그인을 사용하고 있습니다. 나는 리뷰와 평가 점수를 남겨두기로되어있는 폼 안에서 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

을 렌더링 할 때

<template name="rate"> <span class="rateit" data-rateit-value="{{this.pointsRated}}" data-rateit-readonly="true"></span> </template> 

그런 다음 플러그인을 초기화

템플릿에 속도를 바꿈? 추측한다면 rateit initialize 함수는 페이지 렌더링에서만 작동합니다. 그러면 왜 페이지 새로 고침이 별을 표시하는지 설명 할 수 있습니다. – blueren

답변

0

^템플릿 당신이 rateit에 대한 패키지를 사용하고

Template.rate.onRendered(function() { 
    $('.rateit').rateit(); 
}); 
관련 문제