我创建了一个基于angularjs和schema-form的表单,其中包含一个对象数组。
例如:
模式:
"testcase": {
"type": "array",
"items": {
"first": {
"type": "string"
},
"second": {
"type": "string"
}
}
}
形式:
{
key: "testcase",
items: [
{
key: "testcase.first",
validationMessage: {
'notEq': 'Entries must be equal'
},
$validators: {
notEq: function(value) {
//here I would like to write something like
//return value === $model.testcase[ ????? ].second
return true;
}
}
},
{
key: "testcase.second"
},
]
}
我现在想要使用$ validators将验证器附加到每个对象属性。验证器获取要作为参数插入的值,但似乎无法访问发出验证请求的对象。具体来说,似乎无法确定要更新哪个数组元素,以便该验证不能基于对象的其他属性。在示例中:如何检查同一对象中的两个条目是否一致?如何访问数组索引?
一个明显的解决方法是检查可以从$ scope.model访问的整个数组。但是,由于在模型内容更新之前调用验证器,因此也无法正常工作。
有出路吗?