1)顯示平均評分和評論數
<p>Average Rating: <img class="stars" src="/img/star{{averageRating}}.png"> ({{countReviews}})</p>
我搬到這個代碼到reviews.helpers部分
Template.reviews.helpers({
'reviews': function() {
return Reviews.find({productId: Router.current().data()._id})
},
countReviews: function(){
return Reviews.find({productId: Router.current().data()._id}).count();
},
averageRating: function() {
var reviews = Reviews.find({productId: Router.current().data()._id}); //get all reviews for productId
//var ratings = reviews.map(function(player){return player.score;}); // get just the ratings, or use _.pluck
var ratings = _.pluck(reviews, 'ratings'); // get just the ratings i.e. [1, 5, 3, 2, 5]
var sum = ratings.reduce(function(pv, cv){return pv + cv;}, 0); //sum ratings i.e. 14
var avg = sum/ratings.length; // i.e. 2.8
return Math.round(2.8); // round avg to ensure only integer values are returned
},
})
2)種子數據庫
Docs將Meteor.startup塊添加到種子數據庫
// On server startup, if the database is empty, create some initial data.
if (Meteor.isServer) {
Meteor.startup(function() {
if (Categories.find().count() === 0) {
Categories.insert({name:'Electronics',slug:'electronics'});
Categories.insert({name:'Fashion',slug:'fashion'});
Categories.insert({name:'Books',slug:'books'});
}
});
}
你能否幫我解答第一個問題,如何顯示被點擊的產品的總體評價和平均評分? @JeremyK – Waqar
averageRating幫助函數仍未顯示平均評分。你能否也請解釋一下這個函數是如何工作的? @Jeremyk – Waqar
當然我會分解成更多的步驟。 – JeremyK