使用dockyard/ember-validations设置验证规则的默认方式如下。
var Controller = Em.Controller.extend(
{
validations: {
'model.firstName':
{presence:
{message: 'First Name is a required field.'}
},
'model.lastName':
{presence:
{message: 'Last Name is a required field.'}
}
},
..
}
但是我想根据条件选择这个验证对象,我选择了如下的函数属性。
var Controller = Em.Controller.extend(
{
validations: function() {
if(somecondition)
{
return{ 'model.firstName':
{presence:
{message: 'First Name is a required field.'}
},
'model.lastName':
{presence:
{message: 'Last Name is a required field.'}
}
}
else
{..}
}
}.property(),
..
}
但是当我将其转换为函数时,ember-validations库无法按预期工作。我该如何缓解这种情况?
最佳答案
我建议您看一下ember-cp-validations,它提供了扩展的验证选项。