Skip to content

fergaldoyle/modelOptions

Repository files navigation

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.

npm install ngmodeloptions

###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.

About

ngModelOptions for AngularJS 1.2

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages