Skip to content

Commit a04b51e

Browse files
authored
Merge pull request #329 from DevExpress/Form_items_as_dxi_item
Configuration components improvment
2 parents 0e504eb + 630c2ae commit a04b51e

File tree

10 files changed

+928
-87
lines changed

10 files changed

+928
-87
lines changed

examples/app/app.component.html

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ <h2>Angular 2 Forms</h2>
2020
<div class="form-group">
2121

2222
<label for="email">Email</label>
23-
<dx-text-box formControlName="emailControl" [(ngModel)]="email" [isValid]="emailControl.valid || emailControl.pristine" [validationError]="{ message: 'Enter correct email' }"></dx-text-box>
23+
<dx-text-box formControlName="emailControl" [(ngModel)]="formData.email" [isValid]="emailControl.valid || emailControl.pristine" [validationError]="{ message: 'Enter correct email' }"></dx-text-box>
2424

2525
<label for="password">Password</label>
26-
<dx-text-box formControlName="passwordControl" [(ngModel)]="password" mode="password" [isValid]="passwordControl.valid || passwordControl.pristine" [validationError]="{ message: 'Password should be greater that six symbols' }"></dx-text-box>
26+
<dx-text-box formControlName="passwordControl" [(ngModel)]="formData.password" mode="password" [isValid]="passwordControl.valid || passwordControl.pristine" [validationError]="{ message: 'Password should be greater that six symbols' }"></dx-text-box>
2727

2828
</div>
2929
<label>Toggle form controls state: </label>
@@ -36,13 +36,18 @@ <h2>DevExtreme validation features</h2>
3636
<div class="form-group">
3737

3838
<label>Email</label>
39-
<dx-text-box [(value)]="email">
40-
<dx-validator [validationRules]="dxValidationRules.email"></dx-validator>
39+
<dx-text-box [(value)]="formData.email">
40+
<dx-validator>
41+
<dxi-validation-rule type="required" message="Email is required."></dxi-validation-rule>
42+
<dxi-validation-rule type="email" message="Email is invalid."></dxi-validation-rule>
43+
</dx-validator>
4144
</dx-text-box>
4245

4346
<label>Password</label>
44-
<dx-text-box [(value)]="password" mode="password">
45-
<dx-validator [validationRules]="dxValidationRules.password"></dx-validator>
47+
<dx-text-box [(value)]="formData.password" mode="password">
48+
<dx-validator>
49+
<dxi-validation-rule type="required" message="Password is required."></dxi-validation-rule>
50+
</dx-validator>
4651
</dx-text-box>
4752

4853
<dx-validation-summary></dx-validation-summary>
@@ -51,6 +56,26 @@ <h2>DevExtreme validation features</h2>
5156
<dx-button (onClick)="validate($event)" text="Submit"></dx-button>
5257
</dx-validation-group>
5358

59+
<h2>dxForm</h2>
60+
<dx-form
61+
#dxForm
62+
[formData]="formData"
63+
labelLocation="top">
64+
<dxi-item
65+
dataField="email"
66+
editorType="dxTextBox">
67+
<dxi-validation-rule type="required" message="Email is required."></dxi-validation-rule>
68+
<dxi-validation-rule type="email" message="Email is invalid."></dxi-validation-rule>
69+
</dxi-item>
70+
<dxi-item
71+
dataField="password"
72+
editorType="dxTextBox"
73+
[editorOptions]="{ mode: 'password' }">
74+
<dxi-validation-rule type="required" message="Password is required."></dxi-validation-rule>
75+
</dxi-item>
76+
</dx-form>
77+
<dx-button (onClick)="dxForm.instance.validate()" text="Submit"></dx-button>
78+
5479
<h2>Editor Widgets</h2>
5580

5681
<dx-button text="Simple button" (onClick)="boolValue=!boolValue"></dx-button><br/>

examples/app/app.component.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -99,19 +99,9 @@ import{
9999
export class AppComponent implements OnInit {
100100
@ViewChild(DxPopoverComponent) popover: DxPopoverComponent;
101101
text = 'Initial text';
102-
email: string;
102+
formData = { email: '', password: '' };
103103
emailControl: AbstractControl;
104-
password: string;
105104
passwordControl: AbstractControl;
106-
dxValidationRules = {
107-
email: [
108-
{ type: 'required', message: 'Email is required.' },
109-
{ type: 'email', message: 'Email is invalid.' }
110-
],
111-
password: [
112-
{ type: 'required', message: 'Email is required.' }
113-
]
114-
};
115105
form: FormGroup;
116106
boolValue: boolean;
117107
numberValue: number;

0 commit comments

Comments
 (0)