2017-10-18 6 views
0

コレクションを公開しようとしていますが、コレクションに存在しないフィールドに追加したいと考えています。私はここで道を離れるかもしれないが、私はthis.added()を使って出版されたコレクションにフィールドを追加できると思った。誰かがあなたがCursor.observe()Cursor.observeChanges()を使用する必要があります出版物で文書を変更したい場合は、私が間違って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

やっているものを私に示してくださいすることができます。

そのための最も一般的なパターンは、(必要な変更を加えて)です:

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

1つの質問。ただし、コード内では何も返されません。あなたはこの仕組みについていくつか光を当てることができますか? – bp123

関連する問題