【发布时间】:2015-01-29 21:36:10
【问题描述】:
我是 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 并从那里开始工作。这是应该怎么做的吗?
任何帮助将不胜感激!
谢谢! 阿林
编辑:我知道friendRequests.length 实际上在这里工作,但我仍然对如何在一般情况下执行此操作感兴趣。
【问题讨论】: