Files
BACHIR SOULDI 2794e62571 first commit
2025-09-28 08:49:37 +01:00

34 lines
1.6 KiB
Markdown

ngModelOptions for AngularJS 1.2
================================
Directive to bring functionality similar to the new Angular 1.3 ngModelOptions to Angular 1.2, for those stuck supporting IE8 and/or legacy code.
Works well with all input types (text, number, date, radio, checkbox, select) and doesn't break Angular validation.
###Example
Include the module
angular.module("myApp", ["modelOptions"]);
Pass some options
<input type="text"
ng-model="my.model"
ng-model-options="{ debounce: 1000 }" />
Supports the same syntax as official ngModelOptions
<textarea ng-model="my.model"
ng-model-options="{ updateOn: 'default blur', debounce: {'default': 2000, 'blur': 500} }">
</textarea>
###Limitations
Currently only supports the `debounce` and `updateOn` options.
####Select
With `select` elements, the first blank dummy option is not removed when this directive is used. With IE8, the removal of this inital blank option when a valid option is selected never worked in Angular anyway, so it's best to add a disabled option `<option ng-disabled="true" value=""></option>` to the `select` element to solve both problems.
####Events
Some event listeners are turned off for elements to prevent automattic model updates. e.g. angular uses the `click` event to update model for `radio` and `checkbox`. When using this directive, `ng-click` will no longer work on `radio` or `checkbox` inputs. Similarly `ng-change` will no longer work if using this directive on a `select` element. To get around this use alternative events, e.g. on a `checkbox` use `ng-change` instead of `ng-click` or just `$watch` for changes on the model instead.