我使用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')
时我该怎么办?
答案 0 :(得分:0)
正在记录[]
,因为订阅尚未准备就绪。要确定订阅何时准备就绪,您必须向其传递回调函数。然后在你的回调中执行依赖于订阅的代码。
$meteor.subscribe('sitelist', function(error, result) {
console.log(result.fetch());
});