我正在使用ember-validations来验证表单中的模型。
如果我使用createRecord创建记录,那么模型的实例已经被验证,因此表单在用户输入值之前就已经显示了验证错误。
我只想在提交表单之前验证模型。有什么办法吗?
发布于 2014-05-28 15:16:27
您需要添加一个条件验证器('if‘或’除非‘),并仅在提交表单时激活它。
这里有一个简单的例子:http://jsbin.com/letujimu/1/edit?html,js,output
发布于 2015-11-02 19:25:06
除了成员之外,还有另一种选择--验证。ember-model-validator,使用这个插件你可以决定何时进行验证。通过将Ember-model-validator's mixin包含到您的模型中,这将为您的模型添加一个validate函数,它是一个同步函数,返回true或false。
支持所有这些验证:
示例:
// Your model
import Validator from '../mixins/model-validator';
export default DS.Model.extend(Validator, {
email: DS.attr('string'),
password: DS.attr('string'),
passwordConfirmation: DS.attr('string'),
validations: {
email: {
presence: true,
email: { message: 'is not a valid email' }
},
password: {
presence: true,
length: {
minimum: 6
}
},
passwordConfirmation: {
presence: true,
match: 'password'
}
}
});import Ember from 'ember';
export default Ember.Route.extend(
{
actions: {
saveFakeModel: function() {
var _this = this,
fakeModel = this.get('model');
if(fakeModel.validate()){
fakeModel.save().then(
// Success
function() {
// Alert success
console.log('ooooh yeah we just saved the FakeModel...');
},
// Error handling
function(error) {
// Alert failure
console.log('There was a problem saving the FakeModel...');
console.log(error);
}
);
}else{
fakeModel.get('errors');
}
},
}
}
);https://stackoverflow.com/questions/22538825
复制相似问题