Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. <md-whiteframe layout="row" flex flex-md="50" flex-lg="50" flex-gt-lg="33" class="md-whiteframe-z2" layout-fill>
  2. <div layout="row" layout-fill layout-margin layout-padding>
  3. <form [formGroup]="loginForm" (ngSubmit)="onSubmit(loginForm)" layout="row" layout-fill layout-padding layout-margin>
  4. <md-input ngControl="email" placeholder="Email" aria-label="email" formControlName="email" #email></md-input>
  5. <md-input ngControl="password" type="password" placeholder="Password" aria-label="password" formControlName="password"></md-input>
  6.  
  7. <div layout="row" layout-align="space-between center">
  8. <button md-button>Forgot password?</button>
  9. <button [disabled]="!loginForm.valid" md-raised-button class="md-primary" type="submit" aria-label="login">Sign In</button>
  10. </div>
  11. </form>
  12. <div [hidden]="error == ''">
  13. <md-toolbar class="md-warn" layout="row" layout-fill layout-padding layout-margin>
  14. <p class="md-body-1">{{ error }}</p>
  15. </md-toolbar>
  16. </div>
  17. <md-divider></md-divider>
  18. <div layout="row" layout-align="center">
  19. <button md-button >Need an account?</button>
  20. </div>
  21. </div>
  22. </md-whiteframe>
  23.  
  24. import {Component, OnInit} from '@angular/core';
  25. import {MdButton} from '@angular2-material/button';
  26. import {MD_SIDENAV_DIRECTIVES} from '@angular2-material/sidenav';
  27. import {MD_CARD_DIRECTIVES} from '@angular2-material/card';
  28. import {MdInput, MD_INPUT_DIRECTIVES} from '@angular2-material/input';
  29. import {MdCheckbox} from '@angular2-material/checkbox';
  30. import {MdIcon, MdIconRegistry} from '@angular2-material/icon';
  31. import {FORM_DIRECTIVES, FormGroup, REACTIVE_FORM_DIRECTIVES, FormBuilder, Validators, FormControl} from '@angular/forms';
  32.  
  33. @Component({
  34. moduleId: module.id,
  35. selector: 'app-login',
  36. templateUrl: 'login.component.html',
  37. styleUrls: ['login.component.css'],
  38. directives: [
  39. FORM_DIRECTIVES,
  40. REACTIVE_FORM_DIRECTIVES,
  41. MD_INPUT_DIRECTIVES,
  42. MD_SIDENAV_DIRECTIVES,
  43. MD_CARD_DIRECTIVES,
  44. MdButton,
  45. MdInput,
  46. MdCheckbox,
  47. MdIcon
  48. ],
  49. providers: [MdIconRegistry]
  50. })
  51.  
  52. export class LoginComponent implements OnInit {
  53. loginForm: FormGroup;
  54. user = {
  55. email: '',
  56. password: ''
  57. };
  58.  
  59. constructor(fb: FormBuilder) {
  60. this.loginForm = fb.group({
  61. email: ['', Validators.required],
  62. password: ['', Validators.compose( [Validators.required, hasNumbers] ) ]
  63. });
  64.  
  65. }
  66.  
  67. ngOnInit() {
  68.  
  69. }
  70.  
  71. onSubmit(form) {
  72. this.user = this.loginForm.value;
  73. console.log(form)
  74. }
  75.  
  76. }
  77.  
  78.  
  79. //Custom validator
  80. function hasNumbers(control: FormControl): {[s: string]: boolean} {
  81. //return something only if validation fails
  82. if(!control.value.match('\d+')) {
  83. return {noNumbers: true};
  84. }
  85. }
  86.  
  87. .md-input-placeholder {
  88. font-size: 12px;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement