AngularJS: API: ng/directive/ngDisabled


ngDisabled

  1. - directive in module ng

The following markup will make the button enabled on Chrome/Firefox but not on IE8 and older IEs:

<div ng-init="scope = { isDisabled: false }">
 <button disabled="{{scope.isDisabled}}">Disabled</button></div>

The HTML specification does not require browsers to preserve the values of boolean attributes such as disabled. (Their presence means true and their absence means false.) If we put an Angular interpolation expression into such an attribute then the binding information would be lost when the browser removes the attribute. The ngDisabled directive solves this problem for the disabled attribute. This complementary directive is not removed by the browser and so provides a permanent reliable place to store the binding information.

Directive Info

  • This directive executes at priority level 100.

Usage

  • as attribute:
    <INPUT
      ng-disabled="">
    ...
    </INPUT>

Arguments

ParamTypeDetails
ngDisabledexpression

If the expression is truthy, then special attribute "disabled" will be set on the element

Example

index.html
Click me to toggle: <input type="checkbox" ng-model="checked"><br/><button ng-model="button" ng-disabled="checked">Button</button>
protractor.js
it('should toggle button', function() {
  expect(element(by.css('button')).getAttribute('disabled')).toBeFalsy();
  element(by.model('checked')).click();
  expect(element(by.css('button')).getAttribute('disabled')).toBeTruthy();});