更新:我想通了。我需要添加集合参数而不是模式参数。一旦我补充说一切都很好。
我有一个可以正确呈现的表单。但是当我点击提交按钮时,应该通过自动表单钩子触发的代码不会运行(没有打印控制台日志语句),并且我的浏览器通过 GET 请求被带到与表单本身相同的 URL,但内容添加到查询字符串的表单值。
为什么表单无法正确提交?
我有一个与这个工作正常的表格基本相同的表格。事实上,我复制并粘贴了该表单中的大部分代码来创建该表单。
这是我的架构:
Application.Schemas.Lessons = new SimpleSchema({
title: {
type: String,
label: "Title"
},
summary: {
type: String,
label: "Summary"
},
content: {
type: String,
label: "Content"
},
courseId: {
type: Number,
index: 1
},
lastUpdated: {
type: Date,
label: "Last Updated",
autoValue: function () {
return new Date();
}
}
});
在这里,我将架构添加到一组全局架构并将其附加到集合中:
Lessons = Application.Collections.Lessons = new Meteor.Collection('lessons');
Lessons.attachSchema(Application.Schemas.Lessons);
Lessons.allow({
insert: function() {
return true;
},
remove: function() {
return true;
}
});
这是我的表格:
<template name="lessonForm">
{{# autoForm schema=Application.Schemas.Lessons id="lessonForm" type=action doc=lesson}}
<fieldset>
{{> afQuickField name="title"}}
{{> afQuickField name="summary" rows=6}}
{{> afQuickField name="content" rows=6}}
</fieldset>
<button class="btn btn-primary pull-left" type="submit">Submit</button>
{{/autoForm}}
</template>
<template name="editLesson">
<h1 class="page-header">Edit Lesson</h1>
{{> lessonForm action="update" lesson=this}}
<button class="delete btn btn-danger pull-right">Delete</button>
<div class="clearfix"></div>
</template>
<template name="newLesson">
<h1 class="page-header">New Lesson</h1>
{{> lessonForm action="insert" }}
<div class="clearfix"></div>
</template>