SimpleSchema 自定义验证消息未显示
SimpleSchema custom validation message not showing
我正在尝试实现自定义验证功能,它可以 return true
(如果字段有效)或一些自定义错误消息。这是我目前的尝试:
global.Messages = Models.Messages = new Mongo.Collection 'messages'
MessagesSchema = new SimpleSchema({
content: {
type: String,
label: "Message",
max: 200,
custom: ->
if @obj.content.includes("a")
true
else
"not contain a"
}, {tracker: Tracker})
Messages.attachSchema MessagesSchema
这是一个人为的示例,但仍然无法正常工作。 custom
函数中的条件是 运行,当 true
得到 returned 时,记录会保存。但是,如果 "not contain a"
得到 returned,它 不会 成为客户端上显示的验证消息。它只是说 content is invalid
,我不确定如何自定义此消息。这是模板代码:
{{#autoForm collection="Messages" id="insertMessageForm" type="insert"}}
<fieldset>
<legend>Add message</legend>
{{> afFieldInput type='text' name='content'}}
{{#if afFieldIsInvalid name='content'}}
<span class="help-block">{{afFieldMessage name='content'}}</span>
{{/if}}
</fieldset>
<button type='submit' class='btn btn-primary'>Insert</button>
{{/autoForm}}
我的原始代码存在一些问题。
首先,我没有具体说明我是如何要求的 SimpleSchema
但应该这样做;这使用新的 node-simpl-schema
包,这是 meteor-simple-schema
迁移到的包:
SimpleSchema = require('simpl-schema').default
SimpleSchema.extendOptions(['autoform']);
验证消息映射到键:
SimpleSchema.setDefaultMessages
messages:
en:
"notA": "doesnt contain a"
messages
和 en
散列是正确结构所必需的。
要点:custom
的 return 值是 而不是 显示在客户。它是一个 key,指向默认消息对象中的条目。
例如:
custom: ->
if @obj.content.includes("a")
true
else
"notA"
这将最终显示消息 "doesnt contain a"
我正在尝试实现自定义验证功能,它可以 return true
(如果字段有效)或一些自定义错误消息。这是我目前的尝试:
global.Messages = Models.Messages = new Mongo.Collection 'messages'
MessagesSchema = new SimpleSchema({
content: {
type: String,
label: "Message",
max: 200,
custom: ->
if @obj.content.includes("a")
true
else
"not contain a"
}, {tracker: Tracker})
Messages.attachSchema MessagesSchema
这是一个人为的示例,但仍然无法正常工作。 custom
函数中的条件是 运行,当 true
得到 returned 时,记录会保存。但是,如果 "not contain a"
得到 returned,它 不会 成为客户端上显示的验证消息。它只是说 content is invalid
,我不确定如何自定义此消息。这是模板代码:
{{#autoForm collection="Messages" id="insertMessageForm" type="insert"}}
<fieldset>
<legend>Add message</legend>
{{> afFieldInput type='text' name='content'}}
{{#if afFieldIsInvalid name='content'}}
<span class="help-block">{{afFieldMessage name='content'}}</span>
{{/if}}
</fieldset>
<button type='submit' class='btn btn-primary'>Insert</button>
{{/autoForm}}
我的原始代码存在一些问题。
首先,我没有具体说明我是如何要求的 SimpleSchema
但应该这样做;这使用新的 node-simpl-schema
包,这是 meteor-simple-schema
迁移到的包:
SimpleSchema = require('simpl-schema').default
SimpleSchema.extendOptions(['autoform']);
验证消息映射到键:
SimpleSchema.setDefaultMessages
messages:
en:
"notA": "doesnt contain a"
messages
和 en
散列是正确结构所必需的。
要点:custom
的 return 值是 而不是 显示在客户。它是一个 key,指向默认消息对象中的条目。
例如:
custom: ->
if @obj.content.includes("a")
true
else
"notA"
这将最终显示消息 "doesnt contain a"