2017-04-25 6 views
1

ember jsアプリケーションでember-cp-validationを使用して検証しています。コンポーネントページでvalidate()メソッドを使用します。私はエラーが発生しています(検証は関数ではありません)。私は私が使用している私のコンポーネントでモデルのページ(profile.js)では、このlinkvalidate()はember-cp-validationの機能ではありません

import DS from 'ember-data'; 
import { validator, buildValidations } from 'ember-cp-validations'; 

const Validations = buildValidations({ 
    name: validator('presence', true), 

    address:[ 
     validator('presence', true), 
     validator('length', { max: 300}), 
    ], 

    pincode: validator('presence', true), 

    email:[ 
     validator('presence', true), 
     validator('format', {type:'email'}) 
    ] 

}); 

export default DS.Model.extend(Validations,{ 
    name: DS.attr('string'), 
    address: DS.attr('string'), 
    pincode: DS.attr('number'), 
    email: DS.attr('string') 
}); 

そしてコンポーネントページ、

import Ember from 'ember'; 

export default Ember.Component.extend({  
    actions: { 
     authenticate() {    
      let profile = this.get('profile'); 
      profile.validate().then(({ validations }) => { 
       if(validations.get('isValid')){ 
        this.transitionToRoute("welcome"); 
       } 
      });   
     } 
    } 
}); 
+0

あなたは 'コンポーネントのprofile'属性が実際にあなたが検証を定義した' model'のインスタンスであることを確認していますか? – alptugd

+0

'profile'はmodels filenameです。 – Arunprasath

答えて

0

を呼ば:

  • this.get('model').validate()検証を強制するには
  • this.get('isValid')は、現在の入力が有効かどうかを知るために使用します。

だから、あなたができる:

this.get('model').validate().then(() => { 
    if (this.get('isValid')) { 
    this.transitionToRoute("welcome"); 
    } 
}); 
関連する問題