Avinash Solanki Avinash Solanki - 1 month ago 29
AngularJS Question

In angularjs we are having ng-disabled directive, why ng-enabled directive is not provided by the framework as we are having ng-show and ng-hide

In AngularJs

ng-enabled
directive is not provided. Is there any proper reason to not providing that directive in the framework, because we are having both
ng-show
and
ng-hide
when you can just use
ng-hide
to achieve our goal.

It wouldn't be nice just to check
ng-enabled="attribute.value === true"


instead of
ng-disabled="!(attribute.value === true)"


it will increase the readability of the code.

Answer

The reason why there is no ngEnabled directive in Angular is rather semantical - there is simply nothing corresponding to it in HTML specification. At the same time there is already ngDisabled directive that works with disabled attribute. For the same reason, there is no ngUnchecked directive, because there is already ngChecked that sets/removes checked attribute.

Now, the reasonable question: why we have both ngShow and ngHide then? Well it's just for convenience in this case I guess, because having both ngShow and ngHide is not more confusing than ngShow alone, but at the same time it's very handy to have both.

Comments