我正在使用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;
}
}
}
});
然而,它似乎永远不会陷入困境。
我如何获取路由参数并将其与我的表单一起传递给带有自动表单的流星方法?
答案 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
添加到我的模板