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
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
Craig Hutchison
b55aaf094f
fix: allow for null values in HTML select options bound with ngValue
...
This corrects the case of <option [ngValue]="null"> binding a string like "{0: null}" to the model instead of an actual null object.
Closes #10349
2016-11-14 16:47:09 -08:00
Craig Hutchison
d90b622fa4
fix: allow for null values in HTML select options bound with ngValue
...
This corrects the case of <option [ngValue]="null"> binding a string like "{0: null}" to the model instead of an actual null object.
Closes #10349
2016-11-14 16:47:09 -08:00
Joao Dias
77ee27c59e
refactor(): use const and let instead of var
2016-11-12 16:40:17 -08:00
Tobias Bosch
69dfcf7385
docs(forms): add inline docs why ngModel
runs a 2nd change detection run ( #12821 )
...
Related to #11895
2016-11-11 15:24:11 -08:00
Victor Berchet
45ddd6ba78
cleanup(forms): remove facade ( #12804 )
2016-11-11 10:47:34 -08:00
Victor Berchet
ef881475e9
fix(forms): check if registerOnValidatorChange exists on validator before trying to invoke it ( #12801 )
...
closes #12593
2016-11-10 16:20:59 -08:00
Victor Berchet
ec92f4b198
refactor: remove keys()
and values()
from MapWrapper
2016-11-04 13:27:38 -07:00
Victor Berchet
57051f01ce
refactor: remove most facades ( #12399 )
2016-10-21 15:14:44 -07:00
Victor Berchet
76dd026447
refactor: remove some facades ( #12335 )
2016-10-19 13:42:39 -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
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
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
Alex Eagle
8c975ed156
refactor(facade): inline StringWrapper ( #12051 )
2016-10-06 15:10:27 -07:00
Alex Eagle
0286956107
refactor(facade): Inline isBlank called with object-type argument ( #11992 )
2016-09-30 09:26:53 -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
44da4984f9
fix(forms): support unbound disabled in ngModel ( #11736 )
2016-09-20 14:55:47 -07:00
Victor Berchet
671f73448c
refactor: misc cleanup ( #11654 )
2016-09-19 17:15:57 -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
bf81b06a28
docs(forms): add select control examples ( #11728 )
2016-09-19 16:25:33 -07:00
Kara
fa4723a208
docs(forms): add radio button examples ( #11676 )
2016-09-19 10:41:20 -07:00
Kara
26d1423ae9
docs(forms): update docs for NgForm ( #11547 )
2016-09-12 17:01:04 -07:00
Kara
61aad7925f
fix(forms): fix resetting radios ( #11546 )
...
Closes #11516
2016-09-12 15:15:58 -07:00
Kara
c9513b713a
docs(forms): add example apps for ngModelGroup ( #11525 )
2016-09-12 11:45:48 -07:00
Kara
66e38b6754
docs(forms): add example apps for ngModel ( #11524 )
2016-09-12 11:27:29 -07:00
Kara
c9ad5e46d6
docs(forms): add example app for formArrayName ( #11512 )
2016-09-12 11:26:43 -07:00
Kara
2cdd051109
docs(forms): update example for formGroupName ( #11510 )
2016-09-12 11:26:18 -07:00
Kara
57cb82052b
docs(forms): add example app for formControlDirective ( #11508 )
2016-09-12 11:24:09 -07:00
Kara Erickson
dd8204a655
docs(forms): update example for formGroupDirective
2016-09-12 11:22:51 -07:00
Kara Erickson
cdda4082de
docs(forms): add example app for formControlName
2016-09-12 11:22:51 -07:00
Kara
53f0c2206d
fix(forms): rename validator change fn due to conflict ( #11492 )
...
Closes #11479
2016-09-09 14:09:11 -07:00
Pawel Kozlowski
436af15d63
refactor: remove parseFloat from facades ( #11446 )
2016-09-08 13:54:10 -07:00
Kara
8c09933803
fix(forms): support rebinding nested controls ( #11210 )
2016-09-02 15:57:35 -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
Misko Hevery
7c07bfff97
fix(errors): [2/2] Rename Exception to Error; remove from public API
...
BREAKING CHANGE:
Exceptions are no longer part of the public API. We don't expect that anyone should be referring to the Exception types.
ExceptionHandler.call(exception: any, stackTrace?: any, reason?: string): void;
change to:
ErrorHandler.handleError(error: any): void;
2016-08-26 10:37:17 -07:00
Kara
ce08982f78
fix(forms): fix conflicting getter name ( #11081 )
2016-08-25 14:56:31 -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
Igor Minar
501b83441d
refactor(forms): remove FORM_PROVIDERS, FORM_DIRECTIVES, REACTIVE_FORM_PROVIDERS, REACTIVE_DIRECTIVES
...
All of these have been replaced by FormsModule and ReactiveFormsModule.
2016-08-25 13:29:03 -07:00
John Lindquist
6ef7a76e39
doc(form): updating example to avoid "TypeError: Converting circular structure to JSON" ( #10184 )
2016-08-25 11:14:40 -07:00
Kara
2b313e4979
feat(forms): add support for disabled controls ( #10994 )
2016-08-24 16:58:43 -07:00
Kara
6fd5bc075d
chore(forms): update forms labels ( #10873 )
2016-08-17 07:44:39 -07:00