1

更新:私はそれを理解しました。schema パラメーターの代わりに collection パラメーターを追加する必要がありました。私がそれを追加したら、すべてが順調でした。

適切にレンダリングされるフォームがあります。しかし、送信ボタンをクリックすると、オートフォーム フックを介して実行されるはずのコードが実行されず (コンソール ログ ステートメントは出力されません)、ブラウザーは 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