Guest User

Untitled

a guest
Sep 25th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. import { Component } from '@angular/core';
  2. import { FormGroup, FormControl, Validators, FormArray } from '@angular/forms';
  3.  
  4. @Component({
  5. selector: 'my-formstwo',
  6. templateUrl: "app/fromstesttwo/fromstesttwo.component.html",
  7. })
  8. export class FromstesttwoComponent {
  9.  
  10. myForm: FormGroup;
  11. constructor(){
  12. this.myForm = new FormGroup({
  13. 'dataforms': new FormGroup({
  14. 'username': new FormControl('sh', [Validators.required,Validators.minLength(3)]),
  15. 'email': new FormControl('',
  16. [
  17. Validators.required,
  18. Validators.pattern("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")
  19. ])
  20. }),
  21. 'password': new FormControl('', Validators.required),
  22. 'gender': new FormControl('Fmale',Validators.required),
  23. 'hobys': new FormArray([
  24. new FormControl('SF')
  25. ])
  26. });
  27. }
  28. get hobyss(): FormArray { return this.myForm.get('hobys') as FormArray; }
  29. addHobys() {
  30. this.hobyss.push(new FormControl());
  31. }
  32. genders:Array<string> = [
  33. 'Male',
  34. 'Fmale'
  35. ]
  36. onSubmit(){
  37. console.log(this.myForm);
  38. }
  39. }
  40.  
  41. <div class="clearfix"> </div>
  42. <p> </p>
  43. <form [formGroup]="myForm" (ngSubmit)="onSubmit()">
  44. <div formGroupName="dataforms">
  45. <div class="form-group">
  46. <label for="exampleInputEmail1">Username</label>
  47. <input
  48. type="username"
  49. class="form-control"
  50. id="exampleInputEmail1"
  51. placeholder="Username"
  52. formControlName="username">
  53. </div>
  54.  
  55. <div class="form-group">
  56. <label for="exampleInputEmail1">Email address</label>
  57. <input
  58. type="email"
  59. class="form-control"
  60. id="exampleInputEmail1"
  61. placeholder="Email"
  62. formControlName="email">
  63. <div *ngIf="!myForm.controls.dataforms.controls.email.valid">
  64. email inValid
  65. </div>
  66. </div>
  67. </div>
  68.  
  69.  
  70. <div class="form-group">
  71. <label for="exampleInputPassword1">Password</label>
  72. <input
  73. type="password"
  74. class="form-control"
  75. id="exampleInputPassword1"
  76. placeholder="Password"
  77. formControlName="password">
  78. </div>
  79.  
  80. <div class="form-group">
  81. <div class="radiobottom" *ngFor="let g of genders">
  82. <input type="radio" name="gender" [value]="g" formControlName="gender">
  83. {{g}}
  84. </div>
  85. </div>
  86.  
  87.  
  88. <div FormArrayName="hobys">
  89. <div class="form-group" *ngFor="let h of myForm.controls.hobys.controls; let i=index">
  90. <p> </p>
  91. <input
  92. type="text"
  93. class="form-control"
  94. formControlName="{{ i }}">
  95. </div>
  96. </div>
  97.  
  98. <button type="button" class="btn btn-primary" (click)="addHobys()">Hoby</button>
  99. <button type="submit" class="btn btn-default" [disabled]="!myForm.valid">Submit</button>
  100.  
  101.  
  102. </form>
  103.  
  104. EXCEPTION: Error in app/fromstesttwo/fromstesttwo.component.html:53:10 caused by: Cannot find control with name: '0'
  105.  
  106. <div formArrayName="hobys">
  107. <div class="form-group" *ngFor="let h of myForm.controls.hobys.controls; let i = index">
  108. <p></p>
  109. <input type="text" class="form-control" formControlName="{{i}}">
  110. </div>
  111. </div>
  112.  
  113. export class FromstesttwoComponent {
  114.  
  115. myForm: FormGroup;
  116. usernameCtrl: FormControl;
  117. emailCtrl: FormControl;
  118. passwordCtrl: FormControl;
  119. genderCtrl: FormControl;
  120. hobbiesCtrl: FormControl;
  121. dataFormsCtrl: FormGroup;
  122. hobbiesCtrl: FormArray;
  123.  
  124. constructor() {
  125. this.usernameCtrl = new FormControl('sh', [Validators.required,Validators.minLength(3)]);
  126. this.emailCtrl = new FormControl('',
  127. [
  128. Validators.required,
  129. Validators.pattern("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")
  130. ]
  131. );
  132. this.passwordCtrl = new FormControl('', Validators.required);
  133. this.genderCtrl = new FormControl('Fmale',Validators.required);
  134. this.hobbiesCtrl = new FormArray([new FormControl('SF')]);
  135.  
  136. this.dataFormsCtrl = new FormGroup({
  137. 'username': this.usernameCtrl,
  138. 'email': this.emailCtrl
  139. });
  140.  
  141. this.myForm = new FormGroup({
  142. 'dataforms': this.dataFormsCtrl,
  143. 'password': this.passwordCtrl,
  144. 'gender': this.genderCtrl,
  145. 'hobys': this.hobbiesCtrl
  146. });
  147. }
  148. }
  149.  
  150. <div *ngIf="!myForm.controls.dataforms.controls.email.valid">
  151. ...
  152. <div class="form-group" *ngFor="let h of myForm.controls.hobys.controls; let i=index">
  153.  
  154. <div *ngIf="emailCtrl.invalid">
  155. ...
  156. <div class="form-group" *ngFor="let h of hobbiesCtrl.controls; let i=index">
Add Comment
Please, Sign In to add comment