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