在formarray验证器中的GroupBy - 'groupBy not a function'错误

时间:2016-10-17 11:23:31

标签: forms angular typescript group-by

我为我的班级创建了一个动态表单

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不是函数

任何人都可以帮助我吗? 感谢

2 个答案:

答案 0 :(得分:1)

groupBy不是formarray.controls的函数。在您的示例链接中,使用提供lodash.js函数的groupBy。检查plnkr custom group validation in angular 2

答案 1 :(得分:1)

来自示例linK:

  

现在让我们看一下自定义组验证方法。 我使用了groupBy   lodash librar的方法 y检测是否有更多的组   比一个项目,这意味着我们有重复的名称。

您在项目中使用 lodash 吗?