Я новичок в Meteor и его API/философии, поэтому я мог бы подумать об этом неправильно.Помощники по сбору метеоров от других помощников
Я хочу отобразить некоторые новые запросы друзей на странице или сообщении, если их нет. Вот код:
// addfriend.js
Template.friendRequests.helpers({
friendRequests: function() {
return [
{ username: 'alice' },
{ username: 'carl' },
{ username: 'eve' },
];
},
hasFriendRequests: function() {
var template = Template.instance();
return template.helpers.friendRequests.length > 0;
}
});
// addfriend.html
<template name="friendRequests">
<h2>Friend requests</h2>
{{#if hasFriendRequests}}
<p>Someone's popular today!</p>
<ul>
{{#each friendRequests}}
<li>{{username}}</li>
{{/each}}
</ul>
{{else}}
<p>Sorry, nobody likes you right now.</p>
{{/if}}
</template>
Моя проблема заключается в том, что friendRequests
в конечном счете будет запрос MongoDB и я хочу hasFriendRequests
к не повторить этот запрос. Я просто хочу, чтобы он действовал на помощнике friendRequests
. Но код, который у меня выше, не работает для этого.
В общем, я заинтересован в возможности применить любую функцию f
к дорогому помощнику, так что мне не нужно ее компрометировать. Поэтому, если вы можете осветить меня, это было бы потрясающе!
Один из способов, я могу думать, что это делается, помещая данные в Session
и работая там. Так ли это должно быть сделано?
Любая помощь будет оценена!
Спасибо! Алинь
Edit: Я понимаю friendRequests.length
работы здесь на самом деле, но я по-прежнему заинтересован в том, чтобы сделать это в общем случае.
Да, я могу представить, что эти оптимизаторы сохранят мне запрос. Но я не хочу полагаться на этот мини-MongoDB, чей протокол кеширования я не понимаю. Будет ли регистрировать помощника с помощью 'registerHelper (getLength, ...)' и вызывать его в HTML-шаблоне с помощью '{{# if getLength friendRequests}}' правильного способа сделать это? –
Я думаю, что обычный способ делать такие вещи - это делать несколько запросов на Minimongo - обычно создание нескольких запросов на интерфейсе не будет узким местом для вашего приложения. – stubailo
Это интересно. Спасибо! –