0
我有收集定义一个简单的模式流星自动窗体选项:如何填充对象
testReport = new SimpleSchema({
name : {
type: String,
label: "Your Name"
},
school : {
type: Object,
label: "Your School"
},
"school.$.name" : {
type: String
},
"school.$.region" : {
type: String
}
}, { tracker: Tracker });
Reports.attachSchema(testReport);
该模式通过自动窗体用来产生非常简单的形式被保存到报告收集:
{{#autoForm collection=Collections.Reports id="form" type="insert"}}
{{> afQuickField name="name" }}
{{> afQuickField name="school" options=schoolOptions}}
<input type="submit" value="Submit">
{{/autoForm}}
一个简单的助手用来收集从具有自动填充数据选项下拉菜单:
schoolOptions: function() {
if (Meteor.userId()) {
Meteor.user().profile.schools)
return Meteor.user().profile.schools.map(function (c) {
return {label: c.name, value: JSON.stringify({ name: c.name, region: c.region})};
});
}
}
一切都成功呈现的,但是当我点击提交我得到的校场,说
错误“你的学校必须是Object类型的”
我也尝试夫妇的重构,但没有任何工程。通常在选项下拉列表的“value”字段中,我们只放入一个字符串,数字等。但我想在这里传递一个对象(由帮助器返回) 对象看起来像。
{"name":"someSchoolName","region":"someRegion"}
所以插入到Collection中的最后文件应该是这样的:
{
"name": "John",
"school": {"name":"someSchoolName","region":"someRegion"}
}
任何人都可以请帮助呢? 非常感谢提前!
在您的模式,试图改变这个' “学校$名字。”:{类型:字符串},“学校$ .region“:{type:String}'''school.name”:{type:String},“school.region”:{type:String}' – Abk
@abk这是正确的答案。谢谢你的努力!请将此作为答案而不是评论,以便我可以标记它。 – Maciek