Ember.js使用ember-cp-validations

时间:2016-08-10 14:48:42

标签: javascript ember.js

我目前正在与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属性。

然而,此时我遇到了困难,无法弄清楚我的表单验证有什么问题。

在这种表单验证中,我似乎错过了一些重要的连接,但我不确定它是什么。如果有人能就我做错的事情提供指导,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的代码看不出任何问题。你的“预印本形式验证器”是什么样的?如果您愿意,也可以验证表单组件。

arr = "try this".each_char.map.with_index { |c,i| i.even? ? c : nil }
  #=> ["t", nil, "y", nil, "t", nil, "i", nil]