validate()不是ember-cp-validation中的函数

时间:2017-04-25 12:24:39

标签: ember.js ember-cli ember-cp-validations

我在ember js应用程序中使用ember-cp-validation进行验证。在组件页面中使用validate()方法。但我收到错误(验证不是一个功能)。我提到了link

在模型页面(profile.js)中,

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

1 个答案:

答案 0 :(得分:0)

在我正在使用的组件中:

  • this.get('model').validate()强制进行验证,
  • this.get('isValid')以了解当前输入是否有效。

所以你可以这样做:

this.get('model').validate().then(() => {
  if (this.get('isValid')) {
    this.transitionToRoute("welcome");
  }
});