在meteor中,我如何使用订阅数据,我可以控制它

时间:2015-07-09 00:41:01

标签: meteor angular-meteor

我使用meteor + angular,我发布了一些数据,我订阅了它,但是当我调试它时,结果是[]

这是我在mongodb中的数据

meteor:PRIMARY> db.site.find()
{ "_id" : "5wGu3EcSis9GJGmkf", "name" : "cc", "age" : 12 }
{ "_id" : "jEboHgEF4Hvp5rpg7", "name" : "bob", "age" : 20 }

,我在server.js

中执行此操作
  3   Meteor.publish('sitelist', function() {
  4   ┊ return CheckSite.find();
  5   }); 

我可以在chrome的控制台中获得一些东西

CheckSite.find().fetch()
[Object_id: "5wGu3EcSis9GJGmkf"age: 12name: "cc"__proto__: Object, Object_id: "jEboHgEF4Hvp5rpg7"age: 20name: "bob"__proto__: Object  

我在client.js中订阅:

  4   ┊ $meteor.subscribe('sitelist');
  5   ┊ console.log(CheckSite.find().fetch());

像这样,我安慰它,但它只是[]在控制台中 为什么,$meteor.subscribe('sitelist')时我该怎么办?

1 个答案:

答案 0 :(得分:0)

正在记录[],因为订阅尚未准备就绪。要确定订阅何时准备就绪,您必须向其传递回调函数。然后在你的回调中执行依赖于订阅的代码。

$meteor.subscribe('sitelist', function(error, result) {
  console.log(result.fetch());
});