角度架构形式 - 数组验证
Angular Schema Form - Array validation
我正在尝试使用架构形式制作一个唯一值数组,但这似乎是一项不可能完成的任务。
为了简单起见,让我们考虑这个简单的唯一验证器:
$scope.validateUnique = function(value) {
console.log('running validation');
var sameName = $scope.model.NoDuplicate.filter(function(item) {
return item.key === value;
});
return sameName.length < 2;
}
打开您的控制台并访问此小提琴。
步骤1:添加名为1的新项目。
步骤2:添加名为12的新项目。
步骤3:添加名为123的新项目。
步骤4:添加名为1234的新项目。
目前为止,一切都好。
步骤 5:将第一项 (1) 更改为 1234,以便显示错误消息。
步骤6:删除最后一项,以便第一项再次唯一。但什么也没发生。删除项目后,数组不会再次验证,即使您单击提交按钮,该按钮也应触发表单的评估,也不会发生任何反应。
这个问题是我的错误吗?我的示例代码中是否有错误?还是某种模式表单错误?如何在删除项目或提交表单时实现数组的重新验证?谢谢!
已解决。我并不为解决方案感到自豪,因为 Angular 架构表单数组验证被破坏,我无法找到更好的解决方案。
我已将其添加到表单指令中
$scope.$watch('formState', () => {
TestStartActions.updateFormStateFromForm(newVal);
angular.forEach($scope.testStartForm.$error.runtimeUnique, (field) => {
field.$validate();
});
}, true);
这是工作小提琴。
相关文章:
- 验证会话中是否存在对象's数组
- 如何创建一个方法来验证数组的范围
- Join架构验证:Join.object定义数组中的有效键
- 在对象上迭代以验证它是否's键存在于数组中
- validate.js验证数组元素
- 根据某些条件验证用户输入,而不是将输入输入到数组中,需要最基本的解决方案
- 验证来自 javascript 数组的文本字段输入
- Join验证对象数组,这样只有一个对象具有特定属性
- 验证数组文件字段的表单提交
- 使用 javascript 验证输入数组
- jQuery 验证器正则表达式使用数组或变量
- AngularJS 无法自定义验证模型数组值
- 如何编写一个测试来验证函数是否已成功将字符串列表(在数组中指定)打印到屏幕上
- 搜索输入字段以搜索 JavaScript 数组 - 如何验证空输入框
- 角度架构形式 - 数组验证
- 如何根据输入字段数组验证禁用提交按钮
- 使用数组验证两个选择框
- 基于数组验证输入
- 在jquery中通过数组验证多个文件上传
- 从数组验证文件扩展名