0

正如标题所说,我认为ember-cp-validationsember-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'),如果验证未完成,这将禁用我的按钮,因为如果我没有添加此属性,即使某些信息为假,也会发送信息。
也许有人有一个提示,可以在我的表单中进行验证。大家好!

4

1 回答 1

0

我刚刚找到它,有一个插件会自动显示消息错误,并以 ember-bootstrap 形式对其进行验证:ember-bootstrap-cp-validations

于 2017-09-22T09:14:05.217 回答