正如标题所说,我认为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,也会发送信息。
也许有人有一个提示,以我的形式进行验证工作。祝大家好日子!