Advertisement
Guest User

Untitled

a guest
Oct 11th, 2017
437
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.19 KB | None | 0 0
  1. ERROR TypeError: Cannot read property 'slice' of undefined at MapSubscriber.project (client-list.component.ts:148) at MapSubscriber._next (map.js:77) at MapSubscriber.Subscriber.next (Subscriber.js:89) at MergeAllSubscriber.OuterSubscriber.notifyNext (OuterSubscriber.js:19) at InnerSubscriber._next (InnerSubscriber.js:23) at InnerSubscriber.Subscriber.next (Subscriber.js:89) at BehaviorSubject._subscribe (BehaviorSubject.js:28) at BehaviorSubject.Observable._trySubscribe (Observable.js:171) at BehaviorSubject.Subject._trySubscribe (Subject.js:97) at BehaviorSubject.Observable.subscribe (Observable.js:159)
  2.  
  3. <!-- Position Column -->
  4. <ng-container cdkColumnDef="id">
  5. <cdk-header-cell *cdkHeaderCellDef class="example-header-cell"> No. </cdk-header-cell>
  6. <cdk-cell *cdkCellDef="let element" class="example-cell"> {{element.id}} </cdk-cell>
  7. </ng-container>
  8.  
  9. <!-- Name Column -->
  10. <ng-container cdkColumnDef="fname">
  11. <cdk-header-cell *cdkHeaderCellDef class="example-header-cell"> Name </cdk-header-cell>
  12. <cdk-cell *cdkCellDef="let element" class="example-cell"> {{element.fname}} </cdk-cell>
  13. </ng-container>
  14.  
  15. <!-- Weight Column -->
  16. <ng-container cdkColumnDef="lname">
  17. <cdk-header-cell *cdkHeaderCellDef class="example-header-cell"> Last name </cdk-header-cell>
  18. <cdk-cell *cdkCellDef="let element" class="example-cell"> {{element.lname}} </cdk-cell>
  19. </ng-container>
  20.  
  21. <!-- Color Column -->
  22. <ng-container cdkColumnDef="email">
  23. <cdk-header-cell *cdkHeaderCellDef class="example-header-cell"> email </cdk-header-cell>
  24. <cdk-cell *cdkCellDef="let element" class="example-cell"> {{element.email}} </cdk-cell>
  25. </ng-container>
  26.  
  27. <cdk-header-row *cdkHeaderRowDef="displayedColumns" class="example-header-row"></cdk-header-row>
  28. <cdk-row *cdkRowDef="let row; columns: displayedColumns;" class="example-row"></cdk-row>
  29.  
  30. import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
  31. import {ActivatedRoute, Router} from "@angular/router";
  32. import {ClientService} from "../../services/client.service";
  33. import {Client} from "../../data/client";
  34. import {DataSource} from "@angular/cdk/collections";
  35. import {Observable} from "rxjs/Observable";
  36. //import {MdTableModule} from '@angular/material';
  37. import 'rxjs/add/observable/of';
  38. import {BehaviorSubject} from "rxjs/BehaviorSubject";
  39.  
  40. @component({
  41. selector: 'app-client-list',
  42. templateUrl: './client-list.component.html',
  43. styleUrls: ['./client-list.component.css']
  44. })
  45.  
  46. export class ClientListComponent implements OnInit {
  47.  
  48. sampleData : Client [] = [{ id:13,
  49. fname:'carkade',
  50. lname:'wijesinghe',
  51. email:'carkade@gmail.com',
  52. title:'2',
  53. dob:'2017-08-28',
  54. gender:'1',
  55. mobile:'0714809448',
  56. countryCode:'LK',
  57. createdDate:'1504593982000',
  58. status:0}];
  59. displayedColumns = ['id', 'fname', 'lname', 'email'];
  60.  
  61. dataSource: ExampleDataSource | null;
  62.  
  63. constructor(private route: ActivatedRoute,
  64. private router: Router,
  65. private clientService: ClientService) { }
  66.  
  67. @ViewChild('filter') filter: ElementRef;
  68.  
  69. ngOnInit() {
  70.  
  71. this.dataSource = new ExampleDataSource(this.route, this.clientService);
  72.  
  73. Observable.fromEvent(this.filter.nativeElement, 'keyup')
  74. .debounceTime(150)
  75. .distinctUntilChanged()
  76. .subscribe(() => {
  77. console.log("-event start : "+this.filter.nativeElement.value)
  78. if (!this.dataSource) {
  79. console.log("dataSource null");
  80. return;
  81. }
  82. this.dataSource.filter = this.filter.nativeElement.value;
  83. });
  84. }
  85.  
  86. }
  87.  
  88. /** An database that the data source uses to retrieve data for the table. */
  89. export class ClientDatabase {
  90. dataChange: BehaviorSubject<Client[]> = new BehaviorSubject<Client[]>([]);
  91. get data(): Client[] { return this.dataChange.value; }
  92.  
  93. constructor(clientDataBase: Client[]) {
  94. this.dataChange.next(clientDataBase);
  95. }
  96. }
  97.  
  98. export class ExampleDataSource extends DataSource {
  99. /** Connect function called by the table to retrieve one stream containing the data to render. */
  100.  
  101. clients: Client[];
  102. clientDatabase: ClientDatabase;
  103.  
  104. _filterChange = new BehaviorSubject('');
  105. get filter(): string { return this._filterChange.value; }
  106. set filter(filter: string) { console.log("filter 2 : "+filter); this._filterChange.next(filter); }
  107.  
  108. constructor(private route: ActivatedRoute, private clientService: ClientService) {
  109. super();
  110. }
  111.  
  112. connect(): Observable<Client[]> {
  113. console.log("------------ ExampleDataSource connect --------------");
  114.  
  115. this.route
  116. .params
  117. .map(params => params['status'] || '-1')
  118. .subscribe(status => {
  119. console.log("ExampleDataSource connect 1");
  120. if (!this.clientService.clients) {
  121. this.getClients(status);
  122. } else {
  123. this.clients = this.clientService.clients;
  124. }
  125. console.log("ExampleDataSource connect 2");
  126. this.clientDatabase = new ClientDatabase(this.clients);
  127. });
  128.  
  129. const displayDataChanges = [
  130. this.clientDatabase.dataChange,
  131. this._filterChange,
  132. ];
  133. console.log("data from backend > : "+JSON.stringify(this.clientDatabase));
  134.  
  135. return Observable.merge(...displayDataChanges).map(() => {
  136. return this.clientDatabase.data.slice().filter((item: Client) => {
  137. let searchStr = (item.fname + item.lname).toLowerCase();
  138. return searchStr.indexOf(this.filter.toLowerCase()) != -1;
  139. });
  140. });
  141. }
  142.  
  143. disconnect() {}
  144.  
  145. getClients(status: number) {
  146. if (true)
  147. this.clientService.getClients(status).then(
  148. res => {
  149. this.clients = res;
  150. });
  151. return this.clients;
  152. }
  153. }
  154.  
  155. connect this.clientDatabase : {"dataChange":{"_isScalar":false,"observers":[],"closed":false,"isStopped":false,"hasError":false,"thrownError":null,"_value":[{"id":13,"fname":"carkade","mname":null,"lname":"wijesinghe","title":"2","email":"carkade@gmail.com","emailNew":null,"dob":"2017-08-28","gender":"1","mobile":"0714809448","country":{"code":"LK","name":"Sri Lanka"},"token":"ca5a33d2-fe73-41a8-aeab-368ce9e7ecfc","createdDate":1504593982000,"status":0,"password":"b83027a303a5f7dc20fb1a2d6ad2e046","salt":"iqTdlhHC+1j6/akmbVzOeg=="},{"id":19,"fname":"Sanka","mname":null,"lname":"wijesinghe","title":"4","email":"sanka@gmil.com","emailNew":null,"dob":"2014-12-29","gender":"1","mobile":"0714809448","country":{"code":"LK","name":"Sri Lanka"},"token":"f5a57f2e-e4fa-4286-ac0f-3c99d2233894","createdDate":1505802532000,"status":0,"password":"7f67762dc47ea8caa9db115bc84ad7de","salt":"9MBDaNArbBKDOEvv8lsXgg=="},{"id":20,"fname":"Sanka","mname":null,"lname":"wijesinghe","title":"4","email":"sanka.w@gmail.com","emailNew":null,"dob":"2010-12-27","gender":"1","mobile":"0714809448","country":{"code":"LK","name":"Sri Lanka"},"token":"2060e276-c64b-422e-9183-620042288e7c","createdDate":1505802706000,"status":0,"password":"915e307a8cf467767d6adbc60d868df7","salt":"puOmRu0RtGuiSGkfoS7F3g=="},{"id":22,"fname":"Sanka","mname":null,"lname":"wijesinghe","title":"2","email":"info@carkade.com","emailNew":null,"dob":"2017-09-06","gender":"1","mobile":"0714809448","country":{"code":"LK","name":"Sri Lanka"},"token":"788ea560-7e8d-43bd-86fc-5e8d55842c2c","createdDate":1506444003000,"status":0,"password":"0b08fd68bcf839fc3564a025e1f97c20","salt":"CrReLqA8VQvyTwxtcAWZRA=="},{"id":23,"fname":"Sanka","mname":null,"lname":"wijesinghe","title":"2","email":"sdasdasd@ddd.com","emailNew":null,"dob":"2017-09-13","gender":"1","mobile":"+94-1111111111","country":{"code":"LK","name":"Sri Lanka"},"token":"33af7107-dfe3-48cd-9c60-063480870889","createdDate":1506588235000,"status":0,"password":"9376bcf20a1b5ff1d7f6887944997b80","salt":"nBj6VsCmIlj5NJYRZUksBA=="}]}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement