0
私は流星のアプリケーションで星評価を実装するためにJQuery rateitプラグインを使用しています。私はレビューと評価点を残すことになっているフォーム内で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.');
}
})
}
フォームを送信すると、フォームがレビューコンテンツに置き換えられているのがわかりました。レビューメッセージは表示されますが、ページを更新しない限り、評価された星が表示されません。
をレンダリングするとき、あなたがrateitのための任意のパッケージを使用しているプラグインを初期化する?テンプレートにあなたの率
を包み私が推測しなければならないのは、rateit初期化関数がページレンダリングでのみ機能していることです。これは、なぜページのリフレッシュがスターを見せるようにするのかを説明します。 – blueren