返回不正确的数据

时间:2016-03-24 19:45:39

标签: meteor meteor-autoform

autoform只记录一个接受/拒绝,它适用于所有jobOffers。不是doc = this在{{#each}}语句中引用单个jobOffer。

路径:Schema.js

Schemas.Offers = new SimpleSchema({
    offer: {
        type: String,
        optional: true,
        allowedValues: ['Accept', 'Reject'],
        autoform: {
                type: "select-radio",
                options: function () {
                return [
                {label: "Accept", value: 'Accept' },
                {label: "Reject", value: 'Reject' },
                ];
            }
        }
    }
});

路径:template.html

{{#each jobOffers}}

    {{#autoForm collection="Offers" id="offerForm" doc=this type="update" autosave=true}}

        {{> afQuickField name="offer" type="select-radio" template="buttonGroup" label=false}}

    {{/autoForm}}   

{{/each}}

2 个答案:

答案 0 :(得分:0)

循环中的所有表单都使用相同的id='offerForm',这是用于确定目标的内容。

通过向Autoform添加动态ID来解决此问题。

如果jobOffers是来自Mongo的光标,则它会有一个唯一的_id,您可以使用id

答案 1 :(得分:0)

解决方案是创建一个帮手。

路径:helper.js

Template.Offer.helpers({
    jobOffers: function () {
        return JobOffers.find({candidateUserId: Meteor.userId()});
    }, 
    makeUniqueID: function () {
      return this._id;
    }
});

路径:template.html

{{#each jobOffers}}
    {{#autoForm collection="JobOffers" id=makeUniqueID doc=this type="update"}}
        {{> afQuickField name='offer'}}
        <button type="submit" class="btn btn-primary submit">Update</button>
    {{/autoForm}}   
{{/each}}