2017-10-18 34 views
0

我想发布一个集合,我想添加一个不存在于集合中的字段。我可能在这里偏离轨道,但我认为我可以使用this.added()将字段添加到发布的集合中。是否有人可以告诉我,我做错了什么如何正确使用this.added

Meteor.publish('job.view-open-to-candidate', function(jobCollectionId) { 
    const job = Jobs.find({ _id: jobCollectionId }, { 
    fields: { 
     candidateApplication: 0 
    } 
    }); 

    this.added('job', jobCollectionId, {testNewField: 'test'}) 

    return job; 
}); 
+0

这是在正确的轨道上https://stackoverflow.com/questions/39175965/using-this-added-in-流星 – Mikkel

+0

是的,我试图在没有运气的情况下实施。我不确定为什么? @Mikkel – bp123

回答

1

如果你想修改出版,你应该使用Cursor.observe()Cursor.observeChanges()文件。

为最常见的模式是(与修改需要):

Meteor.publish('job.view-open-to-candidate', function(jobCollectionId) { 
    const publication = this; 

    const handle = Jobs.find({ _id: jobCollectionId }, { 
    fields: { 
     candidateApplication: 0 
    } 
    }).observeChanges({ 
    added(_id, fields) { 
     const newFields = fields; 
     newFields.testNewField = 'test'; 
     publication.added('jobs', _id, newFields); 
    }, 

    changed(_id, fields) { 
     const newFields = fields; 
     newFields.testNewField = 'test'; 
     publication.changed('jobs', _id, newFields); 
    }, 

    removed(_id) { 
     publication.removed('jobs', _id); 
    }, 
    }); 

    this.ready(); 

    this.onStop(() => { 
    handle.stop(); 
    }); 
}); 
+0

我需要逐步了解它是如何工作的,但它确实如此。感谢您的发表! – bp123

+0

有一个问题。然而,这在代码中不起任何作用。你能否介绍一下它的工作原理? – bp123