我正在尝试根据所选的单选按钮链接隐藏的输入,并且我仍然坚持如何去做。 autoform select-radio选项助手创建一个带有内部标识的数组,这使得很难附加另一个帮助程序,并且值和名称也不够独特。
我想的可能是通过一组值将对象添加到单选按钮值然后在before hook中进行一些处理,但是呃,我真的不知道该怎么做。我希望尽可能不在模板中添加其他输入字段。
Template.example.html
{{#autoForm collection="arrayscollecti" id="insert-form" doc=currentDoc type="insert"}}
{{> afFieldInput name="arrays" options=radioHelper type="select-radio"}}
{{/autoform}}
Template.example.helper
radioHelper: function() {
var array0 = this.object[0].objectA.objectA.value;
var array1 = this.object[1].objectA.objectA.value;
var hidden0 = this.object[0].objectA.objectB.differentvalue;
var hidden1 = this.object[1].objectA.objectB.differentvalue;
return [
{label: array0, value: array0},
{label: array1, value: array1}
];
},
答案 0 :(得分:0)
好的,所以我明白了。这个问题在任何地方都没有答案,因为它确实特定于这种情况,但我希望标题中的关键字可以帮助其他人找到如何将多个隐藏字段发布到autoform中并传递简单模式。如果其他人有解决方案,请发表回答。
帮助器不会将除字符串之外的任何内容作为值,因此我将其字符串化
radioHelper: function() {
var array0 = this.object[0].objectA.objectA.value;
var array1 = this.object[1].objectA.objectA.value;
var hidden0 = this.object[0].objectA.objectB.differentvalue;
var hidden1 = this.object[1].objectA.objectB.differentvalue;
var objectArray0 = JSON.stringify({"simpleschema1": this.object[0].objectA.objectA.value, "simpleschema2": "VARorNUMorSTRINGorOBJECT"}
var objectArray1 = JSON.stringify({"simpleschema1": this.object[1].objectA.objectA.value, "simpleschema2": VARorNUMor"STRING"orOBJECT}
return [
{label: array0, value: objectArray0},
{label: array1, value: objeactArray1}
];
},
完成后,您需要创建一个将在模式中运行并希望通过的前挂钩。如果没有,那么你需要查看你的帮助器或查看console.logs以查看信息是否正确。我离开了我的createdat并创建了字段,以防有人想要将这些字段添加到数据库而不在HTML中公开。
AutoForm.hooks({
'insert-form': {
before: {
insert: function(doc, template) {
var result = JSON.parse(doc.arrays);
doc = result;
doc.createdat = JSON.stringify(moment()._d);
doc.ownerid = Meteor.userId();
return doc;
}
}
});