1

更新:我想通了。我需要添加集合参数而不是模式参数。一旦我补充说一切都很好。

我有一个可以正确呈现的表单。但是当我点击提交按钮时,应该通过自动表单钩子触发的代码不会运行(没有打印控制台日志语句),并且我的浏览器通过 GET 请求被带到与表单本身相同的 URL,但内容添加到查询字符串的表单值。

例如http://localhost:3000/courses/cqfr3FaSaGNjkHRWd/lessons/new?title=My+Title&summary=My+Summary&content=My+Content

为什么表单无法正确提交?

我有一个与这个工作正常的表格基本相同的表格。事实上,我复制并粘贴了该表单中的大部分代码来创建该表单。

这是我的架构:

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>

4

0 回答 0