angular-selectize icon indicating copy to clipboard operation
angular-selectize copied to clipboard

Override $isEmpty is bugged

Open ollivierv opened this issue 10 years ago • 1 comments

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);
};

ollivierv avatar Nov 26 '15 09:11 ollivierv

Related to #110

Note that modelCtrl.$isEmpty has been removed in a previous commit.

PhiLhoSoft avatar Mar 02 '16 10:03 PhiLhoSoft