ngforms 4.1.1 copy "ngforms: ^4.1.1" to clipboard
ngforms: ^4.1.1 copied to clipboard


Forms framework for AngularDart. Easily create forms to accept input from users.

4.1.1 #

  • REFACTOR: use the new super initializers in Dart 2.17.
  • FIX: bring back original import file for compatibility.

4.1.0 #

  • Require Dart >=2.17.0
  • Update pubspec.yaml to improve pub score.
  • Rename the main export file from angular_forms.dart to ngforms.dart.

4.0.1 #

  • Update

4.0.0 #

  • Support null safety
  • Require Dart ^2.14.0

3.0.0 #

  • Stable release

2.1.5 #

New Features #

  • Push down update stream to NgControl so that code can imperatively listen to view changes.

2.1.4 #

  • Maintenance release to support Angular 6.0-alpha+1.

2.1.3 #

  • Maintenance release to support Angular 6.0-alpha.

2.1.2 #

  • Maintenance release to support Angular 5.3.

2.1.1 #

  • Maintenance release to support Angular 5.2.

2.1.0 #

New Features #

  • PatternValidator now has a pattern input. This allows the pattern property to be set dynamically. Previously, this could only be specified statically at compile time.

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.

  • reset method added to AbstractControl and AbstractControlDirective.

  • RequiredValidator now has a required input. This allows the required property to be toggled at runtime. Previously, this could only be set statically at compile time.

  • Control.invalid getter added.

  • Control.markAsPristine added. This will clear the dirty property.

  • Add ngDisabled input to all Control directives.

  • Add MemorizedForm directive. This is a form that will not remove controls if the control is taken out of the view, for example with a [NgIf].

  • Add disabled state to AbstractControl models. Note: This is not yet supported in the template-driven directives.

  • Add markAsUntouched method to AbstractControl.

  • Add a type annotation, T, to AbstractControl, which is tied to the type of value.

  • ControlGroup now extends AbstractControl<Map<String, dynamic>>.

  • ControlArray now extends 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_ACCESSOR token. Use ngValueAccessor instead.

  • Abstract updateValue method added to AbstractControl. All subclasses of AbstractControl will need to implement this method.

  • NgControlName will no longer initialize with null if a value is specified by 'ngModel'.

  • The touched property of Controls is now propagated to parents / children.

  • NgControlGroup can no longer be injected directly. It can still be injected as a ControlContainer.

  • NgControlName and NgFormControl can no longer be injected directly. They can still be injected as a NgControl.

  • The following directives are no longer injectable:

    • CheckboxControlValueAccessor
    • DefaultValueAccnessor
    • MaxLengthValidator
    • MinLengthValidator
    • NgControlStatus
    • NgSelectOption
    • NumberValueAccessor
    • PatternValidator
    • RadioControlValueAccessor
    • RequiredValidator
  • Add ControlValueAccessor.onDisabledChanged() method. All implementations of ControlValueAccessor need to add this method.

  • Remove include and exclude methods from ControlGroup. These can be replaced with calls to markAsEnabled and markAsDisabled instead.

    Before: controlGroup.include('foo');

    After: controlGroup.controls['foo'].markAsEnabled();

  • CheckboxControlValueAccessor now implements ControlValueAccessor<bool> and RadioControlValueAccessor now implements ControlValueAccessor<RadioButtonState>. Previously, they were both ControlValueAccessor<dynamic>.

  • Remove optionals param from ControlGroup constructor. This has been replaced by disabled state for all Controls. See for more details.

  • AbstractControl.find now only accepts a String. To supply a list, use AbstractControl.findPath instead. Also, for find or findPath, ControlArray index is now calling int.parse instead of expecting a raw number.

  • Properly typed the generic parameter on subclasses of AbstractControlDirective. Now, NgControl.control will return a Control, and ControlContainer.control will return a ControlGroup. There may be some unnecessary casts that can now be cleaned up.

  • FormBuilder instance methods group, control, and array have been removed. For FormBuilder.control, just call new Control(value, validator) directly. For and FormBuilder.array, use the static methods FormBuilder.controlGroup and FormBuilder.controlArray, respectively. FormBuilder is no longer Injectable.

  • Changed type of AbstractControl.statusChanges from Stream<dynamic> to Stream<String>. This now matches the type for AbstractControl.status, which as always been a String.

  • 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.
pub points



Forms framework for AngularDart. Easily create forms to accept input from users.

Repository (GitHub)
View/report issues


API reference




meta, ngdart


Packages that depend on ngforms