У меня есть вопрос о том, как лучше всего получить пользовательские данные. Я показываю список отзывов. Каждый отзыв имеет идентификатор пользователя рецензента и идентификатор пользователя рецензента. Структура коллекции такова:
{
"_id": 24235,
"reviewerId": 11254,
"revieweeId": 29981,
"rating": 5,
"reviewText": "Lorem Ipsum"
}
В шаблоне блэйса должны отображаться аватар и имя рецензента. У меня проблемы с выяснением, как лучше получить эти детали? Должен ли я опубликовать услугу? Я буду показывать список отзывов, чтобы сервис вызывался для каждого пользователя, не правда ли, неэффективно?
<ul class="review-list">
{{#each reviews}}
<li>
<img src="{{reviewerAvatar}}"/>
<p>{{reviewerName}}</p>
<p>{{reviewText}}</p>
<span>{{rating}}</span>
</li>
{{/each}}
</ul>
Здесь у меня есть идея, но можно ли улучшить дизайн, чтобы я не делал слишком много ненужных запросов о пользовательских данных?
Template.reviewItem.helpers({
reviewerAvatar: function() {
// is it inefficient to make this call for both reviewerAvatar and reviewerName?
return Meteor.call('users.userDetails', this.reviewerId).avatar;
},
reviewerName: function() {
return Meteor.call('users.userDetails', this.reviewerId).firstName;
}
});