Skip to content

Override $isEmpty is bugged #116

@ollivierv

Description

@ollivierv

The overrided function to support empty array is bugged.
If the value is NOT an array or string but a number, the function return true, but ... it's not empty !

Because evaluate of "!(123).length" is "true" !

In addition, $isEmpty from Angular is lost by override, and it's a very bad idea. We must keep this function for next evolution.

I made a quick fix by a new function :

function isEmpty2(val, modelCtrl)
{
    if( $.isArray(val) )
        return (val.length > 0) ? false : true;
    return modelCtrl.$isEmpty(val); //call to real Angular function
}

And rewrite call in Validate() function :

var validate = function() {
    var isInvalid = (scope.ngRequired() || attrs.required || config.required) && isEmpty2(scope.ngModel,modelCtrl);
    modelCtrl.$setValidity('required', !isInvalid);
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions