我有一个调查表,我希望管理员可以动态添加更多问题。我想这样做的方法是让管理员向有几个属性的Questions集合添加问题,例如:
{
"description" : "desc",
"fieldType" : "textField",
"sortOrder" : 1,
"dataType" : "text",
"_id" : "eFopP8XFgY8Br93fA"
}
然后在客户端,使用#each块和动态模板循环遍历这些:
{{#each questions}}
{{>Template.dynamic template=fieldType}}
{{/each}}
现在“fieldType”字段将对应于存储模板的名称,例如
<template name="textField">
<div>
<input id="{{_id}}" type="{{dataType}}" class="validate">
<label for="{{_id}}">{{description}}</label>
</div>
</template>
并且这些模板内部将根据类型具有不同的输入字段。
我有两个问题:
答案 0 :(得分:3)
关于你的第一个问题,我同意@Kyll关于autoform,我认为你可以动态地将模式作为json对象传递。
关于你的第二个问题,请检查问题Dynamically add form fields in meteorjs,在那里你会找到第二个问题的答案。您可以使用.serializeArray()JQuery serializeArray
轻松获取动态创建的表单中所有字段的值