跟踪器自动运行被动订阅

时间:2014-12-28 03:00:29

标签: meteor reactive-programming

我试图在收集更新时重新计算自动运行, 我只是设法在添加自动发布时让它工作。下面的代码完美无缺。

Tracker.autorun(function() {
   var pages = Posts.find().fetch();
    _.each(pages, function(page) {
      console.log("react");
        if (typeof page.adress !== 'undefined' &&
            typeof page.lat !== 'undefined' &&
            typeof page.long !== 'undefined') {

            var objMarker = {
                id: page._id,
                lat: page.lat,
                lng: page.long,
                title: page.name
            };

            // check if marker already exists
            if (!gmaps.markerExists('id', objMarker.id))
                gmaps.addMarker(objMarker);

        }
    });
});

}

我需要的是对订阅的反应。 我已定义此出版物:

Meteor.publish('allposts', function() {

返回Posts.find({}); });

1 个答案:

答案 0 :(得分:1)

从您的代码看起来似乎缺少订阅客户端上的记录

试试这个

remove autopublish package

在服务器上发布记录

  Meteor.publish('allposts', function() {
    return Posts.find({}); 
});

在客户端中,订阅反应计算中的记录

Tracker.autorun(function(){
      Meteor.subscribe('allposts');
})

现在在客户端中,您可以在任何您想要的地方使用Posts.find({})