在ember-engine中使用ember-cp验证的问题

时间:2017-09-22 08:58:04

标签: ember.js ember-data ember-engines ember-cp-validations

正如标题所说,我认为ember-cp-validations存在问题,我认为该问题与ember-engines有关。
基本上,我的问题是,对于使用ember-cp-validations的模型,表单中没有验证。 这是我的模特:

import Ember from 'ember';
import DS from 'ember-data';
import { validator , buildValidations } from 'ember-cp-validations';

const Validations = buildValidations(
    {
        name:[
            validator('presence', true),
            validator('ds-error'),
            validator('length', {
                min: 3,
                max: 15,
                message: 'The length must be between 3-15 character'
            })
        ]
);

export default DS.Model.extend(Validations, {
    numericId: Ember.computed('id', function ()
    {
        "use strict";
        return Number(this.get('id'));
    }),
    name: DS.attr('string'),
});

正如您所看到的,我的模型非常简单,它在我的应用程序中运行得非常好。

对于模板,我使用ember-bootstrap,它看起来像这样:

{{#bs-form formLayout="horizontal" model=myModel onSubmit=(action 'update') as |form|}}
  <fieldset>
    <legend>Configuration</legend>
        {{form.element controlType="text" label=Name
                       placeholder=myName
                       property="name"}}
        {{bs-button
            defaultText=Submit
            type="primary"
            disabled=(v-get myModel 'isInvalid')
            buttonType="submit"}}
  </fieldset>
{{/bs-form}}

我的模板也非常简单,您可以看到我在表单的第一部分调用property="name",这是我定义模型的anme属性的地方。
如果我的name.length少于3个字符,则消息不会显示 我有义务添加disabled=(v-get myModel 'isInvalid'),如果未完成验证,将禁用我的按钮,因为如果我没有添加此属性,即使某些信息为false,也会发送信息。
也许有人有一个提示,以我的形式进行验证工作。祝大家好日子!

1 个答案:

答案 0 :(得分:0)

我刚发现它,有一个插件会自动显示消息错误,并以ember-bootstrap形式验证它:ember-bootstrap-cp-validations