我在返回正确的theSalary
时遇到问题。它为所有报价返回相同的工资。
路径:helpers.js
Template.jobOfferCandidateView.helpers({
jobOffers: ()=> {
return JobOffers.find({candidateUserId: Meteor.userId()});
},
theSalary: function () {
var jobOffers = JobOffers.findOne({});
var num = (jobOffers && jobOffers.salary) ? jobOffers.salary.toString() : '';
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
}
});
路径:template.html
{{#each jobOffers}}
{{title}}
${{theSalary}}
{{/each}}
答案 0 :(得分:1)
theSalary
在{{#each jobOffers}}
循环内部调用,因此其上下文是工作机会。
目前theSalary
的第一行是:
var jobOffers = JobOffers.findOne({});
只返回集合中的第一个工作机会(这就是为什么你总是得到相同的工资)。尝试将该行更改为:
var jobOffers = this;
答案 1 :(得分:0)
由于jobOffer
块中已有each
个上下文,因此您可以执行以下操作:
theSalary: function () {
num = '';
if (this.salary !== undefined) {
num = this.salary.toString();
}
return num.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
},