更新:私はそれを理解しました。schema パラメーターの代わりに collection パラメーターを追加する必要がありました。私がそれを追加したら、すべてが順調でした。
適切にレンダリングされるフォームがあります。しかし、送信ボタンをクリックすると、オートフォーム フックを介して実行されるはずのコードが実行されず (コンソール ログ ステートメントは出力されません)、ブラウザーは 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>