Ich veröffentliche Benutzer und eine zweite Sammlung namens Joboffers. Die Joboffers-Sammlung speichert die userIds für Arbeitgeber und Kandidaten. Ich möchte den Kandidatennamen neben dem Jobangebot für eine Admin-Seite anzeigen lassen, aber nichts, was ich tue, scheint zu funktionieren. Alle Joboffers zeigen aber nicht den Kandidatennamen an. In meiner Konsole bekomme ich nur Objekt.this.userId Benutzer nicht angezeigt
Pfad: publish.js
// publish all jobs for admin to view
Meteor.publish('allJobs', function() {
return JobOffers.find({});
});
Meteor.publish('allUsersWithJobs', function() {
var offers = JobOffers.find({}, {fields: {candidateUserId: 1}}).fetch();
var ids = _.pluck(offers, 'candidateUserId');
options = { fields: {username: 1, emails: 1, "profile.firstName": 1, "profile.familyName": 1 } };
return Meteor.users.find({ _id: { $in: ids } }, options);
});
Pfad: alljoboffers.js
Template.alljoboffers.onCreated(function() {
Meteor.subscribe("allJobs");
Meteor.subscribe("allUsersWithJobs");
});
Template.alljoboffers.helpers({
alljoboffers: function() {
return JobOffers.find({});
},
candidateName: function() {
console.log(this);
var user = this.userId;
var candidate = (user && user.profile && user.profile.firstName);
return candidate;
},
});
Pfad: alljoboffers.html
{{#each alljoboffers}}
{{positionTitle}}
{{#with candidateName}}
{{profile.firstName}}
{{/with}}
{{/each}}
Dank @Hubert. Ich habe das überhaupt nicht erkannt und schätze den Vorschlag, einen globalen Helfer zu erstellen. Ich wünschte, ich hätte das zu Beginn des Projekts getan. Danke noch einmal! – bp123