在Sails.js中根据参数设置一个必需的属性
Make an attribute required based on param with Sails.js
我有一个有两个属性的模型。一个叫userType,一个叫lastName。
基本上我想做的是:如果userType是professor
,那么lastName应该是必需的。
userType: {
type: 'string',
required: true,
enum: ['professor', 'administrator']
},
lastName: {
type: 'string',
required: function() {
return this.userType === 'professor';
}
},
为什么不能将required作为函数传递?在水线文档中甚至有一个验证contains
的例子。
如果不可能,是否有其他方法可以做到这一点?我不想在控制器上创建自定义验证,我想把一切都留给模型。甚至可以使用beforeValidate回调。
谢谢
根据sails文档http://sailsjs.org/documentation/concepts/models-and-orm/validations
您可以创建自己的验证,例如:
module.exports = {
types: {
isProfessor: function(lastName){
return (this.userType === 'professor' && !lastName)? false: true;
}
},
attributes:{
userType: {
type: 'string',
required: true,
enum: ['professor', 'administrator']
},
lastName: {
type: 'string',
isProfessor: true
}
}
}
相关文章:
- AngularJS:如何用同一对象的另一个属性访问一个属性
- 如何为下拉列表的每个选项添加一个属性
- 如果另一个属性相同,请删除该属性
- Knockout observable没有观察到其中一个属性
- 检查来自不同数组的两个元素的一个属性是否相等
- 我想从使用onkeypress事件的文本区域获取一个属性
- ..的Javascript..循环中的对象没有在最后一个属性上运行
- 节点发布错误对象的第一个“属性”
- 如何在 XML 中搜索特定属性以检索另一个属性
- Angular JS如何观看“;只有一个属性”;
- 如果我们使用:运算符在函数内部定义一个属性,会发生什么
- AngularJS ng通过对象中的一个属性和一个文本框重复筛选
- 如何检索上一个属性的名称属性
- 如何使用jQuery只删除一个属性值而不删除另一个
- JavaScript-获取一个属性'的值
- 在ember.js记录上使用toJSON,将其中一个属性设置为null
- 如何在集合中指定模型的一个属性
- 基于一个属性Javascript检索多个对象
- 是否可以在材质ui中只更改样式道具中的一个属性
- 使用jquery从xml中选择一个属性