为什么 Meteor autoForm afQuickField 错误不会在错误时显示?

Why won't Meteor autoForm afQuickField Errors display on error?

在我们的 Meteor v1.11.1 应用程序中,我们在 blaze 中使用 Bootstrap 3、aldeed:autoform@6.3.0aldeed:collection2@3.2.1 来验证表单。我们真的很想实施“最少自定义”的解决方案来显示和验证我们的表单输入。

我们无法理解为什么即使是最基本的错误消息也没有在我们提交时出现在表单中?我们将表单缩小到一个字段并且提交。 HTML 元素在 DOM 中,但验证时没有消息提示出现。

表单的架构是:

Folios = new Mongo.Collection('Folios')
FolioSchema = new SimpleSchema({
  "name": {
    "type": String,
    "min": 2,
    "required": true
  }
},
{
  "requiredByDefault": false,
  "clean": {
    "filter": true,
    "autoconvert": true,
    "removeEmptyStrings": true,
    "trimStrings": true,
    "getAutoValues": true,
    "removeNullsFromArrays": true
  }
}
Folios.attachSchema(FolioSchema)

表格为:

{{# autoForm id="newFolio"
  class="newFolioForm"
  collection=getFormCollection
  schema=getFormSchema
  type=getFormType
  validation="submitThenBlur"
  resetOnSuccess=true
  }}
  {{> afQuickField name='name' type='text' }}
  <button type="submit">Submit</button>
{{/ autoForm }}

collectionschematype 的助手是:

Template.newFolioForm.helpers({
  getFormCollection()
  {
    return Folios
  },
  getFormSchema()
  {
    return FolioSchema
  },
  getFormType()
  {
    return "insert"
  }
})

当我点击提交时,没有错误消息,没有错误 class,什么都没有。我们已将 simpl-schema docs. We want to avoid the need to implement afMessage 作为完全自定义表单的一部分进行咨询,只是为了让消息和验证错误正确显示。

我想先看看这里。谢谢!

问题来自缺少生成反应式验证消息所需的 Tracker

import { Tracker } from 'meteor/tracker'

FolioSchema = new SimpleSchema({
    'name': {
      'type': String,
      'min': 2,
      'required': true
    }
  },
  {
    'requiredByDefault': false,
    'clean': {
      'filter': true,
      'autoconvert': true,
      'removeEmptyStrings': true,
      'trimStrings': true,
      'getAutoValues': true,
      'removeNullsFromArrays': true
    },
    tracker: Tracker // this line is important
  })

如果不通过 Tracker,模板就不会重绘,因为没有解决依赖关系。

读数:https://github.com/aldeed/simpl-schema#enable-meteor-tracker-reactivity