由于某些原因,我的data: function...总是返回为undefined

这是我的服务器代码:

Flyers = new Mongo.Collection('flyers');

Meteor.publish('flyers', function() {
  return Flyers.find({});
});


就这么简单。

这是我的路由文件(位于名为both的目录中):

Router.route('/dashboard', {
  template: 'dashboard',
  layoutTemplate: "dashboardLayout",
  loadingTemplate: 'loading',
  waitOn: function() {
    return Meteor.subscribe('flyers');
  },
  data: function() {
    return Flyers.find()
  }
 });


只能看到:

javascript - Iron:router从不返回定义的集合(版本1.0.12)-LMLPHP

有什么原因不起作用吗?

最佳答案

由于您的Flyers变量是使用服务器代码定义的,因此只能在服务器上访问。尝试在客户端访问此变量将导致undefined值,因为它不存在。

应该在lib文件夹中定义客户端和服务器上都需要的通用代码,以使其在两个地方都可以访问。

附带说明,这样做的原因是,在某些情况下,您可能希望仅在客户端或服务器上可以访问集合,而不能在两者上都可以访问集合。

09-19 13:35