Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Component, OnInit } from '@angular/core';
  2. import {Student} from '../student';
  3. import {StudentServiceService} from '../student-service.service';
  4. import {Sort} from '@angular/material';
  5.  
  6. @Component({
  7.   selector: 'app-students',
  8.   templateUrl: './students.component.html',
  9.   styleUrls: ['./students.component.css']
  10. })
  11. export class StudentsComponent implements OnInit {
  12.   sortedData: Student[];
  13.   /*students:Student[]=[
  14.     {id:1,firstName:'Nagy',lastName:'Árpád',email:'sfgsdgfs',age:12,postCode:1100},
  15.     {id:1,firstName:'Kis',lastName:'Árpád',email:'sfgsdgfs',age:22,postCode:1103},
  16.     {id:1,firstName:'Halász',lastName:'Árpád',email:'sfgsdgfs',age:15,postCode:1200},
  17.     {id:1,firstName:'Makkos',lastName:'Árpád',email:'sfgsdgfs',age:32,postCode:1100},
  18.     {id:1,firstName:'Sári',lastName:'Árpád',email:'sfgsdgfs',age:3,postCode:1000},
  19.     {id:1,firstName:'Nagy',lastName:'Árpád',email:'sfgsdgfs',age:88,postCode:1101},
  20.   ];*/
  21.   students: Student[];
  22.  
  23.   constructor(
  24.     private studentService:StudentServiceService)
  25.     {
  26.       this.sortedData = this.students.slice();
  27.   }
  28.   ngOnInit() {
  29.    // this.getStudents();
  30.   }
  31.  
  32.   getStudents() :void {
  33.     this.studentService.getStudents()
  34.       .subscribe(students=>this.students=students);
  35.   }
  36.  
  37. sortData(sort: Sort) {
  38.   const data = this.students.slice();
  39.   if (!sort.active || sort.direction === '') {
  40.     this.sortedData = data;
  41.     return;
  42.   }
  43.  
  44.   this.sortedData = data.sort((a, b) => {
  45.     const isAsc = sort.direction === 'asc';
  46.     switch (sort.active) {
  47.       case 'lastName': return compare(a.lastName, b.lastName, isAsc);
  48.       case 'firstName': return compare(a.firstName, b.firstName, isAsc);
  49.       case 'postCode': return compare(a.postCode, b.postCode, isAsc);
  50.       case 'age': return compare(a.age, b.age, isAsc);
  51.       case 'email': return compare(a.email, b.email, isAsc);
  52.       default: return 0;
  53.     }
  54.   });
  55.  
  56. }
  57. }
  58.  
  59.  function compare(a: number | string, b: number | string, isAsc: boolean) {
  60.     return (a < b ? -1 : 1) * (isAsc ? 1 : -1);
  61.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement