我目前正在与Ember应用程序的团队合作,该应用程序需要表单验证。我们决定使用ember-cp-validations
用于前端表单验证。我试图按照他们必须添加一些简单验证的示例,但由于某种原因,验证消息未显示。我创建了一个名为preprint-form-validator.js
的单独文件,其中包含使用buildValidations
的基本验证。
然后在我的数据模型中,我导入了文件:
import Validations from '../validators/preprint-form-validator';
并使用它扩展模型,以便模型知道应该对其某些字段进行验证:
export default DS.Model.extend(Validations, { ...
在我这样做之后,我按照示例创建了验证输入组件。可以找到这些文件here,它们为验证的表单输入应该是什么样子创建前端框架。
最后,在我的组件中,我包含了新的验证输入组件:
{{validated-input model=model valuePath="title" placeholder="Title"}}
当我使用验证器转到页面时,有一个输入字段实际上没有做任何事情 - 因为它没有验证或检查我试图包含的任何限制。在组件所在的路径中,我有一个模型钩子,它执行createRecord()
,如下所示:
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.createRecord('preprint');
}
});
当我试图解决这个问题时,我认为这与模型有关,或者某种方式{valid}还没有在validated-input.js中设置validation
属性。
然而,此时我遇到了困难,无法弄清楚我的表单验证有什么问题。
在这种表单验证中,我似乎错过了一些重要的连接,但我不确定它是什么。如果有人能就我做错的事情提供指导,我将不胜感激。
答案 0 :(得分:0)
您的代码看不出任何问题。你的“预印本形式验证器”是什么样的?如果您愿意,也可以验证表单组件。
arr = "try this".each_char.map.with_index { |c,i| i.even? ? c : nil }
#=> ["t", nil, "y", nil, "t", nil, "i", nil]