2017-09-22 5 views
0

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

答えて

0

私は見つけました。メッセージエラーを自動的に表示し、ember-bootstrap形式でそれを検証するアドオンがあります:ember-bootstrap-cp-validations

関連する問題