タイトルには、ember-cp-validationsの問題があります。これはember-enginesと関連していると思います。
私の問題は、ember-cp-validationを使用するモデルのフォームには検証がないことです。ここ は私のモデルである:ember-enginesでのember-cp-validationの問題
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')
を追加する義務があります。このプロパティを追加しなかった場合、情報が偽の場合でも情報が送信されるため、検証が実行されないとボタンが無効になります。
おそらく、誰かが私のフォームで検証作業をするヒントを持っています。皆さんにお疲れ様でした!