Validation 余烬验证-Don';不能自动验证

Validation 余烬验证-Don';不能自动验证,validation,ember.js,ember-data,Validation,Ember.js,Ember Data,我使用ember验证来验证表单中的模型 如果我使用createRecord创建记录,那么模型的实例已经验证,因此表单在用户输入值之前已经显示验证错误 我只想在提交表单之前验证模型。有办法吗?您需要添加一个条件验证器(“如果”或“除非”),并仅在提交表单时激活它 这里有一个简单的例子:还有另一种替代余烬验证的方法,使用此插件,您可以决定何时进行验证。通过将Ember模型验证程序的mixin包含到您的模型中,这将向您的模型添加一个validate函数,它是一个同步函数,返回true或false 支持

我使用ember验证来验证表单中的模型

如果我使用createRecord创建记录,那么模型的实例已经验证,因此表单在用户输入值之前已经显示验证错误


我只想在提交表单之前验证模型。有办法吗?

您需要添加一个条件验证器(“如果”或“除非”),并仅在提交表单时激活它


这里有一个简单的例子:

还有另一种替代余烬验证的方法,使用此插件,您可以决定何时进行验证。通过将Ember模型验证程序的mixin包含到您的模型中,这将向您的模型添加一个
validate
函数,它是一个同步函数,返回true或false

支持所有这些验证:

例如:

//您的模型
从“../mixins/model Validator”导入验证程序;
导出默认的DS.Model.extend(验证器{
电子邮件:DS.attr('string'),
密码:DS.attr('string'),
密码确认:DS.attr('string'),
验证:{
电邮:{
在场:没错,
电子邮件:{邮件:'不是有效的电子邮件'}
},
密码:{
在场:没错,
长度:{
最低:6
}
},
密码确认:{
在场:没错,
匹配:“密码”
}
}
});
从“余烬”导入余烬;
导出默认的Ember.Route.extend(
{
行动:{
saveFakeModel:function(){
var_this=这个,
fakeModel=this.get('model');
if(fakeModel.validate()){
fakeModel.save()。然后(
//成功
函数(){
//警惕成功
log('ooooh是的,我们刚刚保存了伪造模型…');
},
//错误处理
函数(错误){
//警报故障
log('保存伪造模型时出现问题…');
console.log(错误);
}
);
}否则{
fakeModel.get('errors');
}
},
}
}
);

肯定有办法做到这一点。您可以在表单保存模型之前验证表单,如果表单无效,则回滚表单。你可以发布一下你现在是怎么做的吗?修改某人的代码通常比从头开始编写示例更容易。