gary-b
821b8f09d6
fix(forms): ensure select[multiple] retains selections
...
If you bound an array to select[multiple] via ngModel and subsequently
changed the options to select from, the UI would drop any selections
made since by the user. This was due to
SelectMultipleControlValueAccessor not keeping a reference to the new
model arrays it generated when users interacted with the select control.
Update code to keep the reference.
Closes #12527
Closes #12654
2016-12-14 08:52:07 -08:00
Dzmitry Shylovich
2bf1bbc071
fix(forms): introduce checkbox required validator
...
Closes #11459
Closes #13364
2016-12-14 08:44:24 -08:00
gary-b
7b0a86718c
fix (forms): clear selected options when model is not an array ( #12519 )
...
When an invalid model value (eg empty string) was preset ngModel on
select[multiple] would throw an error, which is inconsistent with how it
works on other user input elements. Setting the model value to null or
undefined would also have no effect on what was already selected in the
UI. Fix this by clearing selected options when model set to null,
undefined or a type other than Array.
Closes #11926
2016-12-14 08:34:19 -08:00
Dzmitry Shylovich
4c35be3e07
feat(forms): add novalidate by default ( #13092 )
2016-12-12 11:17:42 -08:00
Dzmitry Shylovich
e9f307f948
fix(forms): fix Validators.min/maxLength with FormArray ( #13095 )
...
Fixes #13089
2016-12-12 11:17:12 -08:00
Dzmitry Shylovich
f79b320fc4
refactor(forms): remove facade ( #12558 )
2016-11-15 18:48:34 -08:00
Dzmitry Shylovich
46023e4792
fix(select): allow for null values in HTML select options bound with ngValue
...
closes #12829
2016-11-14 16:47:14 -08:00
Joao Dias
77ee27c59e
refactor(): use const and let instead of var
2016-11-12 16:40:17 -08:00
Victor Berchet
57051f01ce
refactor: remove most facades ( #12399 )
2016-10-21 15:14:44 -07:00
shaul almog
0e9503b500
feat(forms) range values need to be numbers instead of strings ( #11792 )
2016-10-19 10:12:13 -07:00
Pawel Kozlowski
97bc97153b
feat(forms): add ng-pending CSS class during async validation ( #11243 )
...
Closes #10336
2016-10-19 09:56:31 -07:00
Florian Kinder
b9fc090143
feat(forms): Added emitEvent to AbstractControl methods ( #11949 )
...
* feat(forms): Added emitEvent to AbstractControl methods
* style(forms): unified named parameter
2016-10-19 09:54:54 -07:00
Cédric Exbrayat
592f40aa9c
feat(forms): add hasError and getError to AbstractControlDirective ( #11985 )
...
Allows cleaner expressions in template-driven forms.
Before:
<label>Username</label><input name="username" ngModel required #username="ngModel">
<div *ngIf="username.dirty && username.control.hasError('required')">Username is required</div>
After:
<label>Username</label><input name="username" ngModel required #username="ngModel">
<div *ngIf="username.dirty && username.hasError('required')">Username is required</div>
Fixes #7255
2016-10-19 09:49:02 -07:00
Dzmitry Shylovich
bf60418fdc
feat(forms): Validator.pattern accepts a RegExp ( #12323 )
2016-10-19 09:37:54 -07:00
Florian Kinder
15fc5dd7ee
test(forms): added missing selfOnly tests ( #12317 )
2016-10-17 22:51:13 -07:00
Connor Wyatt
17e3410d98
Form submit event ( #11989 )
...
* feat(forms): ngSubmit event exposes $event from original submit event as local variable
Modify NgForm directive and FormGroup directive to expose the original submit event as $event in the ngSubmit event. Modify docs to reflect changes.
This resolves #10920 .
* refactor: code cleanup
2016-10-11 15:49:36 -07:00
Pawel Kozlowski
d22eeb70b8
fix(forms): allow optional fields with pattern and minlength validators ( #12147 )
2016-10-10 09:17:45 -07:00
Pawel Kozlowski
f50c1da4e2
fix(forms): properly validate blank strings with minlength ( #12091 )
2016-10-06 15:12:09 -07:00
Pawel Kozlowski
4a57dcfd8d
fix(forms): properly validate empty strings with patterns ( #11450 )
2016-10-04 16:14:23 -07:00
Victor Berchet
50c37d45dc
refactor: simplify arrow functions ( #12057 )
2016-10-04 15:57:37 -07:00
Alex Eagle
41c8c30973
chore(lint): remove unused imports ( #11923 )
...
This was done automatically by tslint, which can now fix issues it finds.
The fixer is still pending in PR https://github.com/palantir/tslint/pull/1568
Also I have a local bugfix for https://github.com/palantir/tslint/issues/1569
which causes too many imports to be deleted.
2016-09-27 17:12:25 -07:00
Kara Erickson
212f8dbde7
fix(forms): disable all radios with disable()
2016-09-20 15:00:12 -07:00
Kara
44da4984f9
fix(forms): support unbound disabled in ngModel ( #11736 )
2016-09-20 14:55:47 -07:00
Kara
51d73d3e4e
fix(forms): make setDisabledState optional for reactive form directives ( #11731 )
...
Closes #11719
2016-09-19 16:26:33 -07:00
Kara
61aad7925f
fix(forms): fix resetting radios ( #11546 )
...
Closes #11516
2016-09-12 15:15:58 -07:00
Kara
79055f727b
fix(forms): support dots in control names in contains ( #11542 )
...
Closes #11535
2016-09-12 15:15:50 -07:00
Kara
53f0c2206d
fix(forms): rename validator change fn due to conflict ( #11492 )
...
Closes #11479
2016-09-09 14:09:11 -07:00
Victor Berchet
0bce3907b8
fix(tests): add missing import ( #11490 )
2016-09-09 14:08:47 -07:00
Victor Berchet
5a4e46db20
refactor(tests): simplify code ( #11485 )
2016-09-09 12:04:38 -07:00
Kara
673de004d2
fix(forms): clear errors on disable ( #11463 )
...
Closes #11287
2016-09-09 12:00:38 -07:00
Kara
7b24028437
fix(forms): fix disabled support for empty form containers ( #11427 )
...
Closes #11386
2016-09-08 12:21:48 -07:00
Kara
8c09933803
fix(forms): support rebinding nested controls ( #11210 )
2016-09-02 15:57:35 -07:00
Kara
043493cb62
fix(forms): disabled controls should never be invalid ( #11257 )
...
Closes #11253
2016-09-01 16:51:42 -07:00
Kara
e8a1566065
fix(forms): support radio buttons with same name but diff parent ( #11152 )
...
Closes #10065
2016-08-29 17:49:42 -07:00
Kara Erickson
d2ad871279
fix(forms): update validity when validator dir changes
...
closes #11116
2016-08-29 13:12:46 -07:00
Javier Ros
0b665c0ece
feat(validations): add support to bind validation attributes
...
This change enables to bind the validations attributes `required`,
`minlength`, `maxlength` and `pattern`.
Closes : #10505 , #7393
2016-08-29 13:12:20 -07:00
Kara
ce08982f78
fix(forms): fix conflicting getter name ( #11081 )
2016-08-25 14:56:31 -07:00
Marc Laval
cbe0976426
test: improve perfs by removing unneeded TestBed.compileComponents() calls ( #11083 )
2016-08-25 14:56:14 -07:00
Kara
515ff61fcb
fix(forms): fully support rebinding form group directive ( #11051 )
2016-08-25 14:37:57 -07:00
Marc Laval
d7c82f5c0f
test: fix memory leak when running test campaign ( #11072 )
2016-08-25 14:37:46 -07:00
Kara
2b313e4979
feat(forms): add support for disabled controls ( #10994 )
2016-08-24 16:58:43 -07:00
Miško Hevery
8a5eb08672
fix(fakeAsync): have fakeAsync use Proxy zone. ( #10797 )
...
Closes #10503
It is possible for code in `beforeEach` to capture and fork a zone
(for example creating `NgZone` in `beforeEach`). Subsequently the code
in `it` may chose to do `fakeAsync`. The issue is that because the
code in `it` can use `NgZone` from the `beforeEach`. it effectively can
escape the `fakeAsync` zone. A solution is to run all of the test in
`ProxyZone` which allows a test to dynamically replace the rules at any
time. This allows the `beforeEach` to fork a zone, and then `it` to
retroactively became `fakeAsync` zone.
2016-08-19 12:10:53 -07:00
Kara
292ccf882a
test(forms): update reactive form integration tests to use TestBed ( #10908 )
2016-08-17 17:10:56 -07:00
Julie Ralph
4c9900dc3a
refactor(testing): remove deprecated testing functions ( #10832 )
...
Remove TestComponentBuilder, addProviders, and withProviders. These
were deprecated in rc5 - see the changelog for update information.
Note - this does not actually remove the functions, but makes them
internal only. They will be removed from the codebase entirely
at a later time.
2016-08-15 21:40:37 -07:00
Kara
04c11bb749
test(forms): update template-driven form tests to use testbed ( #10830 )
2016-08-15 16:37:59 -07:00
Kara
7f6685e451
test(forms): refactor form model tests to three files ( #10774 )
2016-08-13 17:26:08 -07:00
Kara
97f35714f7
feat(forms): add NgForm method that resets submit state ( #10715 )
2016-08-11 23:27:33 -07:00
Kara
7606c96c80
fix(forms): remove deprecated forms APIs ( #10624 )
...
BREAKING CHANGE:
The deprecated forms APIs in @angular/common have been removed. Please update to the new forms API in @angular/forms. See angular.io for more information.
2016-08-11 20:40:46 -07:00
Kara
2291929a15
feat(forms): add control status classes to form groups ( #10667 )
2016-08-11 09:01:09 -07:00
Kara
fcafdff10b
feat(forms): allow both patching and strict setting of values ( #10537 )
2016-08-05 13:35:17 -07:00