0
编辑:作为原来的问题太含糊我已经更新它,使之更加具体流星仪表板和发布/订阅
我想创建流星仪表板显示了有关我的收藏一些统计数据(例如,多少文档,多少用户......)。我一直在尝试过去的日子,但似乎无法找到一个好的/聪明的方式。
我最初只是做了以下内容:
Template.dashboard.helpers({
getProductsCount: function() {
return Products.find().count();
}
});
这没有奏效。我认为,因为它计数从minimongo产品的数量,但不确定。
然后我做了以下内容:
- 在模板助手,调用一个方法,让显示仪表板页面上的值(不工作)
- 却被告知不能使用的pub/sub机制,这种类型的指标
- 通过Session变量曾任职(没有工作,但感觉有点陌生,这类指标数据存储在会话变量
于是我在另一个SO响应AB阅读出反应变量和尝试了以下内容:
Template.dashboard.helpers({
getProductsCount: function() {
return Template.instance().myAsyncValue.get();
}
});
Template.dashboard.created = function() {
var self = this;
self.myAsyncValue = new ReactiveVar("Waiting for response from server");
Meteor.call('getProductsCount', function(error, asyncValue){
if (error)
console.log(error);
else
self.myAsyncValue.set(asyncValue);
});
};
这工作,但我觉得对作为显示产品数量(或任何其他度量)这样简单的事情这非常困难。不知道我明白我为什么应该使用某些作为反应变量的原因吗?
随后的curiosity-退房手续我尝试以下(使用流星添加简单:功法)和它的作品:
Template.customerDashboard.helpers({
getProductsCount: function() {
return ReactiveMethod.call("getProductsCount");
}
});
所以,真正的问题是,为什么必须使用无变量和方法像这样简单。有人可以解释吗?
[此问题太模糊,不适合SO](http://stackoverflow.com/help/dont-ask)。但[发布计数](https://atmospherejs.com/tmeasday/publish-counts)软件包可能会对您有所帮助。 – JeremyK
你也应该看看[msavin:mongol](https://atmospherejs.com/msavin/mongol)作为一个很好的例子。他的代码也在github上。 –
我已更新原始问题以使其更具体。 – wiwa1978