angular_forms 2.0.0
angular_forms: ^2.0.0 copied to clipboard
Forms framework for AngularDart.
2.0.0 #
New Features #
-
Add AbstractControlGroup and AbstractNgForm to allow infrastructure to create their own form systems that can be backed by types such as a proto, or have different control group logic. Allow NgFormModel and NgControlGroup to work with abstract group.
-
resetmethod added toAbstractControlandAbstractControlDirective. -
RequiredValidatornow has arequiredinput. This allows therequiredproperty to be toggled at runtime. Previously, this could only be set statically at compile time. -
Control.invalidgetter added. -
Control.markAsPristineadded. This will clear thedirtyproperty. -
Add
ngDisabledinput to all Control directives. -
Add
MemorizedFormdirective. This is a form that will not remove controls if the control is taken out of the view, for example with a [NgIf]. -
Add
disabledstate toAbstractControlmodels. Note: This is not yet supported in the template-driven directives. -
Add
markAsUntouchedmethod toAbstractControl. -
Add a type annotation,
T, toAbstractControl, which is tied to the type ofvalue. -
ControlGroupnowextends AbstractControl<Map<String, dynamic>>. -
ControlArraynowextends AbstractControl<List>.
Breaking Changes #
-
Use value from AbstractControl for valueChanges event instead of internal variable. Allows code to more easily subclass AbstractControl.
-
Remove deprecated
NG_VALUE_ACCESSORtoken. UsengValueAccessorinstead. -
Abstract
updateValuemethod added toAbstractControl. All subclasses ofAbstractControlwill need to implement this method. -
NgControlNamewill no longer initialize withnullif a value is specified by 'ngModel'. -
The
touchedproperty ofControls is now propagated to parents / children. -
NgControlGroupcan no longer be injected directly. It can still be injected as aControlContainer. -
NgControlNameandNgFormControlcan no longer be injected directly. They can still be injected as aNgControl. -
The following directives are no longer injectable:
CheckboxControlValueAccessorDefaultValueAccnessorMaxLengthValidatorMinLengthValidatorNgControlStatusNgSelectOptionNumberValueAccessorPatternValidatorRadioControlValueAccessorRequiredValidator
-
Add
ControlValueAccessor.onDisabledChanged()method. All implementations ofControlValueAccessorneed to add this method. -
Remove
includeandexcludemethods fromControlGroup. These can be replaced with calls tomarkAsEnabledandmarkAsDisabledinstead.Before:
controlGroup.include('foo');After:
controlGroup.controls['foo'].markAsEnabled(); -
CheckboxControlValueAccessornow implementsControlValueAccessor<bool>andRadioControlValueAccessornow implementsControlValueAccessor<RadioButtonState>. Previously, they were bothControlValueAccessor<dynamic>. -
Remove
optionalsparam fromControlGroupconstructor. This has been replaced bydisabledstate for allControls. See https://github.com/dart-lang/angular/issues/1037 for more details. -
AbstractControl.findnow only accepts a String. To supply a list, useAbstractControl.findPathinstead. Also, forfindorfindPath,ControlArrayindex is now callingint.parseinstead of expecting a raw number. -
Properly typed the generic parameter on subclasses of
AbstractControlDirective. Now,NgControl.controlwill return aControl, andControlContainer.controlwill return aControlGroup. There may be some unnecessary casts that can now be cleaned up. -
FormBuilderinstance methodsgroup,control, andarrayhave been removed. ForFormBuilder.control, just callnew Control(value, validator)directly. ForFormBuilder.groupandFormBuilder.array, use the static methodsFormBuilder.controlGroupandFormBuilder.controlArray, respectively.FormBuilderis no longerInjectable. -
Changed type of
AbstractControl.statusChangesfromStream<dynamic>toStream<String>. This now matches the type forAbstractControl.status, which as always been aString. -
Allow expressions for maxlength/minlength validators. Breaking change does not support string values for maxlength/minlength anymore.
minlength="12"now should be written[minlength]="12"
Bug fixes #
-
Add a not selector to ngForm for memorizedForm since memorized_form is now in angular_forms. This fixes the DIRECTIVE_EXPORTED_BY_AMBIGIOUS error when using: <form #form="ngForm" memorizedForm>
-
Don't throw a null pointer exception in NgFormModel if a directives asks for a Control value before the form is initialized.
1.0.0 #
- Support for angular 4.0.0.
0.1.0 #
- Initial commit of
angular_forms.