Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. <div [formGroup]="myGroup">
  2. <input formControlName="firstName">
  3. </div>
  4.  
  5. this.myGroup = new FormGroup({
  6. firstName: new FormControl()
  7. });
  8.  
  9. ng:///AppModule/HeroFormReactiveComponent.ngfactory.js:95 ERROR TypeError: Cannot read property 'get' of undefined
  10. at FormGroupDirective.webpackJsonp.../../../forms/@angular/forms.es5.js.FormGroupDirective.addControl (vendor.bundle.js:64292)
  11. at FormControlName.webpackJsonp.../../../forms/@angular/forms.es5.js.FormControlName._setUpControl (vendor.bundle.js:64881)
  12. at FormControlName.webpackJsonp.../../../forms/@angular/forms.es5.js.FormControlName.ngOnChanges (vendor.bundle.js:64799)
  13. at checkAndUpdateDirectiveInline (vendor.bundle.js:55512)
  14. at checkAndUpdateNodeInline (vendor.bundle.js:57011)
  15. at checkAndUpdateNode (vendor.bundle.js:56950)
  16. at debugCheckAndUpdateNode (vendor.bundle.js:57811)
  17. at debugCheckDirectivesFn (vendor.bundle.js:57752)
  18. at Object.View_HeroFormReactiveComponent_0._co [as updateDirectives] (ng:///AppModule/HeroFormReactiveComponent.ngfactory.js:218)
  19. at Object.debugUpdateDirectives [as updateDirectives] (vendor.bundle.js:57737)
  20.  
  21. export class HeroFormReactiveComponent implements OnInit {
  22. loginDetailsArray: any;
  23. detailsArray: any[];
  24. minLength: any;
  25. maxLength: any;
  26. pattern: any;
  27. // customerDetail: any[];
  28.  
  29.  
  30. hero = {
  31. username: '',
  32. password: '',
  33. email: ''
  34. };
  35. constructor(private customerService: CustomerService, private http: Http) {}
  36.  
  37.  
  38. heroForm: FormGroup;
  39.  
  40.  
  41. ngOnInit(): void {
  42.  
  43. this.loginDetailsArray = new Object();
  44. this.detailsArray = new Array();
  45. this.loadLoginDetails();
  46.  
  47.  
  48.  
  49. }
  50.  
  51.  
  52. functions() {
  53.  
  54. console.log("print");
  55. console.log(this.loginDetailsArray);
  56.  
  57. var minLength = this.loginDetailsArray.rules.username.minlength;
  58. var maxLength = this.loginDetailsArray.rules.username.maxlength;
  59. var pattern = this.loginDetailsArray.rules.username.pattern;
  60.  
  61.  
  62. this.heroForm = new FormGroup({
  63.  
  64. 'username': new FormControl(this.hero.username, [
  65. Validators.minLength(this.minLength),
  66. Validators.maxLength(this.maxLength),
  67. // Validators.pattern(pattern),
  68. ]),
  69. 'password': new FormControl(this.hero.password, [
  70. Validators.minLength(2),
  71. Validators.maxLength(30),
  72. ]),
  73. });
  74. }
  75.  
  76. loadLoginDetails() {
  77.  
  78. this.customerService.getLoginDetails().subscribe(res => {
  79.  
  80. this.loginDetailsArray = res.json();
  81.  
  82. this.functions();
  83.  
  84. });
  85. }
  86.  
  87.  
  88.  
  89.  
  90. get username() {
  91. return this.heroForm.get('username');
  92. }
  93. get password() {
  94. return this.heroForm.get('password');
  95. }
  96.  
  97. save() {
  98.  
  99. console.log('Saved: ' + JSON.stringify(this.heroForm.value));
  100.  
  101.  
  102. this.detailsArray.push(this.heroForm.value);
  103.  
  104.  
  105. }
  106. }
  107.  
  108. @Injectable()
  109. export class CustomerService{
  110.  
  111. constructor(private http:Http){}
  112.  
  113.  
  114. getLoginDetails(){
  115.  
  116. console.log("getLoginDetails")
  117. //return this.http.get(assets/login.json).map((response: Response) => response.json());
  118. return this.http.get('assets/login.json').map((response: Response) => response);
  119.  
  120. }
  121. }
  122.  
  123. <div class="container">
  124.  
  125. <h1>Login</h1>
  126.  
  127. <form (ngSubmit)="save()" [formGroup]="heroForm" #formDir="ngForm">
  128.  
  129.  
  130. <div [hidden]="formDir.submitted">
  131.  
  132. <div class="form-group">
  133.  
  134. <label for="username">username</label>
  135. <input id="username" class="form-control" formControlName="username">
  136.  
  137. <div *ngIf="username.invalid && (username.dirty || username.touched)" class="alert alert-danger">
  138.  
  139. <div *ngIf="username.errors.required">
  140. required
  141. </div>
  142. <div *ngIf="username.errors.minlength">
  143. Please enter a valid email that does not exceed the character limit
  144. </div>
  145. <div *ngIf="username.errors.maxlength">
  146. Please enter a valid email that does not exceed the character limit
  147. </div>
  148. <div *ngIf="username.errors.pattern">
  149. Please enter a valid email address
  150. </div>
  151. </div>
  152. </div>
  153.  
  154. <div class="form-group">
  155. <label for="password">Password</label>
  156. <input id="password" class="form-control" formControlName="password" required>
  157.  
  158. <div *ngIf="password.invalid && (password.dirty || password.touched)" class="alert alert-danger">
  159.  
  160. <div *ngIf="password.errors.required">
  161. required
  162. </div>
  163. <div *ngIf="password.errors.minlength">
  164. Please enter a password with minimum characters
  165. </div>
  166. <div *ngIf="password.errors.maxlength">
  167. Please enter a password that does not exceed 30 characters
  168. </div>
  169.  
  170. </div>
  171. </div>
  172.  
  173.  
  174.  
  175. <button type="submit" class="btn btn-default" [disabled]="heroForm.invalid">Submit</button>
  176. <!--<td colspan="2">
  177. <div class="alert alert-danger col-md-12" role="alert" *ngIf="!flag">
  178. <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> {{errormsg}}
  179. </div>
  180. </td>-->
  181.  
  182.  
  183. </div>
  184. </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement