2017-04-25 6 views
1

ember js 응용 프로그램에서 유효성 검사를 위해 ember-cp-validation을 사용하고 있습니다. 컴포넌트 페이지에서 validate() 메소드 사용. 하지만 오류가 발생했습니다 (유효성 검사가 함수가 아닙니다). 내가 사용하고 내 구성 요소에서 모델 페이지 (profile.js)에서이 linkvalidate()가 ember-cp 유효성 검사의 함수가 아닙니다.

,

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"); 
    } 
});