我为我的班级创建了一个动态表单
public export class ObjectConfig
{
fields: Field[];
}
public export class Field
{
name: string;
datatype: string;
}
对于字段数组组件,我使用自定义验证器,如下所示:
private customGroupValidation(formArray) {
console.log('validation fired');
let isError = false;
var result = formArray.controls.groupBy( c => {
console.log('group by value :' + c.value.name);
return c.value.name;
});
for (let prop in result) {
if (result[prop].length > 1) {
isError = true;
result[prop].forEach(function (item:FormControl) {
item.status = "INVALID";
});
} else {
result[prop][0]._status = 'VALID';
}
}
if(isError){ return {'duplicate':'duplicate entries'}}
}
我正在使用示例here
我收到错误“ formarray.controls.groupBy不是函数”
任何人都可以帮助我吗? 感谢
答案 0 :(得分:1)
groupBy
不是formarray.controls
的函数。在您的示例链接中,使用提供lodash.js
函数的groupBy
。检查plnkr custom group validation in angular 2
答案 1 :(得分:1)
来自示例linK:
现在让我们看一下自定义组验证方法。 我使用了groupBy lodash librar的方法 y检测是否有更多的组 比一个项目,这意味着我们有重复的名称。
您在项目中使用 lodash 吗?