使用表单向urteor方法提交url参数

时间:2015-04-02 16:47:29

标签: javascript meteor meteor-autoform

我正在使用aldeed:autoform来呈现表单并通过Meteor.method()运行其结果。我的表格如下:

SelectPlanTemplates = new SimpleSchema({
  templates: {
    type: [String],
    autoform: {
      options: function() {
        return PlanTemplates.find().map(function(doc) {
          return { label: doc.title, value: doc._id };
        });
      },
      noselect: true
    }
  },
  userId: {
    type: String,
    allowedValues: function() {
      return Meteor.users.find().map(function(doc) {
        return doc._id;
      });
    },
    autoform: {
      omit: true
    }
  }
});

在我的模板上,我只是执行以下操作。

+ionContent
  +quickForm(schema="SelectPlanTemplates" id="SelectPlanTemplatesForm" type="method" meteormethod="createPlanFromTemplates")

我的网址构建如/plan/from_templates/{:userId}。我尝试在提交之前创建一个钩子来添加用户ID。

AutoForm.hooks({
  SelectPlanTemplatesForm: {
    before: {
      method: function(doc) {
        doc.userId = Router.current().params.userId;
        return doc;
      }
    }
  }
});

然而,它似乎永远不会陷入困境。

我如何获取路由参数并将其与我的表单一起传递给带有自动表单的流星方法?

1 个答案:

答案 0 :(得分:0)

我想我想出了一点奇怪的做法。

在路由器中:

this.route('selectPlans', {
  waitOn: function() {
    return Meteor.subscribe('plan_templates');
  },
  path: '/select/plan_templates/:_id',
  template: 'selectTemplates',
  data: function() {
    return new selectPlanTemplates({ userId: this.params._id });
  }
});

然后我将doc=this添加到我的模板