返回错误的数据

时间:2016-03-24 05:15:35

标签: meteor

我在返回正确的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}}

2 个答案:

答案 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,")
},