Форма автоформы метеора не определена

Я пытаюсь использовать быструю форму для обновления метода, но всякий раз, когда я печатаю и отправляю, в консоли появляются следующие ошибки.

Uncaught TypeError: Cannot read property 'validation' of undefined
Uncaught TypeError: Cannot read property 'autosave' of undefined
Uncaught TypeError: Cannot read property 'type' of undefined

{{#quickForm id="archiveIssue" type="method-update" meteormethod="editIssue" collection=collection doc=doc autocomplete="off"}}
  {{> afQuickField name='Notes'}}
{{/quickForm}}

Вспомогательная функция для извлечения коллекции.

Template.archiveIssue.helpers({
  doc: function () {
    return Session.get("archiveDoc");
  },
  collection: function () {
    return Collections.Issues;
  }
});

Проблемы возникают не из-за метода метеора, этот метод на самом деле никогда не вызывается. Они начали появляться после обновления пакета автоформ -> https://github.com/aldeed/meteor-autoform/blob/master/CHANGELOG.md

Cannot read property 'validation' of undefined появляется на клавиатуре для всего, что набирается. Остальные 2 появляются, когда я пытаюсь отправить.

Методы

if (Meteor.isServer){
  Meteor.methods({
    newIssue: function(doc) {
      check(doc, Schema.Issues);
      Collections.Issues.insert({
        User: Meteor.user()._id,
        Description: doc.Description,
        createdAt: new Date,
        Archived: {
          "Archived": false,
          "User": null,
          "Notes": null
        },
      });
    },
    editIssue: function(modifier, docId) {
      console.log('editIssue called; modifier = ' + JSON.stringify(modifier, null, 4) + '; docId = ' + docId);
      check(modifier, Schema.Issues);
      Collections.Issues.update({
          "_id": docId
        },
        modifier
      );
    },
  });
}

Схема

Collections.Issues = new Mongo.Collection('issues');

Schema.Issues = new SimpleSchema({
  Description: {
    type: String,
    max: 500,
    optional: true
  },
  User: {
    type: String,
    label: "User",
    optional: true
  },
  Notes: {
    type: String,
    label: "Notes",
    optional: true
  },
  Archived: {
    type: Object,
    optional: true
  },
  "Archived.Archived": {
    type: Boolean,
    optional: true
  },
  "Archived.User": {
    type: String,
    max: 50,
    label: "Archiving User",
    optional: true
  }, 
  "Archived.Notes": {
    type: String,
    label: "Notes",
    optional: true
  }
});

Collections.Issues.attachSchema(Schema.Issues);

Шаблоны

<template name="issues">
    <div style="width:90%">
        <h1><i class="fa fa-exclamation-triangle"> Issues</i></h1>
      <h2> Active </h2>
        {{> issueModal}}
        {{> tabular table=TabTables.Issues selector=Active_Selector class="table table-striped table-bordered table-condensed" width="100%"}}
      <h2> Archived </h2>
        {{> tabular table=TabTables.Issues_Archived selector=Archive_Selector class="table table-striped table-bordered table-condensed" width="100%"}}      
    </div>
</template>

<template name="issueModal">
    <div class="modal fade" id="insertIssueModal" role="dialog">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">New Issue</h4>
          </div>
          <div class="modal-body">
            <p>{{> insertIssue}}</p>
          </div>
        </div>
      </div>
    </div>

    <div class="addButton"><button type="button" class="btn btn-success" data-toggle="modal" data-target="#insertIssueModal"><i class="fa fa-plus-square fa-lg"> Add Issue</i></button></div>
</template>

<template name="insertIssue">
  {{#quickForm id="insertIssue" type="method" meteormethod="newIssue" collection=collection validation="keyup" fields="Description" omit="User,Archived.Archived,Archived.User,Archived.Notes" autocomplete="off"}}
  {{/quickForm}}
</template>

<template name="archiveIssueModal">
    <div class="modal fade" id="archiveIssue" role="dialog">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header" >
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title" ><i class="fa fa-archive"> Archive Issue</i></h4>
          </div>
          <div class="modal-body">
            <p>{{> archiveIssue}}</p>
          </div>
        </div>
      </div>
    </div>
    <div class="archiveButton" style="margin: auto 0;" align="center">
      <button id="archiveButton" type="button" class="btn btn-xs btn-info" data-toggle="modal" data-target="#archiveIssue"><i class="fa fa-archive"> Archive</i></button>
    </div>
</template>

<template name="archiveIssue">
  <div align="left">
    {{#quickForm id="archiveIssue" type="method-update" meteormethod="editIssue" collection=collection doc=doc autocomplete="off"}}
      {{> afQuickField name='Notes'}}
    {{/quickForm}}
  </div>
</template>

Архивный документ устанавливается из хелпера

Template.archiveIssueModal.events({
  "click .archiveButton": function (event) {
    Session.set("archiveDoc", this);
  }
});

person Nighthawk    schedule 03.08.2015    source источник
comment
Каково значение collection? Как вы его устанавливаете?   -  person Mark Leiber    schedule 03.08.2015
comment
Отредактированный исходный пост с вспомогательными функциями.   -  person Nighthawk    schedule 03.08.2015
comment
Вы сказали, что ошибки возникают при отправке. Означает ли это, что они поступают из метода editIssue? Можете ли вы показать код? Вы действительно не даете достаточно информации, чтобы получить помощь. См.: stackoverflow.com/help/mcve.   -  person Mark Leiber    schedule 03.08.2015
comment
Трудно оказать помощь, не видя больше вашего кода. Вот рабочий пример, основанный на том, что вы уже показали: github.com/markleiber/so_31791792   -  person Mark Leiber    schedule 04.08.2015
comment
Поиграв с вашим примером и сверив версии пакетов с вашими, я все еще не уверен, что не так с моим. Может ли быть, что другой включенный пакет вызывает эту проблему?   -  person Nighthawk    schedule 04.08.2015
comment
Вы можете добавить свои пакеты в мой код, чтобы увидеть, есть ли конфликт. Это возможно, но я подозреваю, что это ваш код. Дальнейшая отладка невозможна, если вы не покажете больше   -  person Mark Leiber    schedule 04.08.2015
comment
Исходный пост отредактирован.   -  person Nighthawk    schedule 04.08.2015
comment
Где вы устанавливаете archiveDoc в сеансе?   -  person Mark Leiber    schedule 04.08.2015
comment
Все, что вы показали до сих пор, отлично работает. См.: github.com/markleiber/so_31791792.   -  person Mark Leiber    schedule 05.08.2015


Ответы (1)


У меня только что возникла именно эта проблема, и проблема заключалась в том, что у меня был другой тег HTML с тем же идентификатором, что и моя форма.

Изменение либо идентификатора HTML-тега, либо идентификатора формы решило проблему. :)

person Almaju    schedule 28.01.2016