This commit was worked on by a number of people including @filipesilva, @gkalpak and @wardbell. It contains changes that: * remove unused files, * fix the bootstrap approach to ensure that bootstrap is in the correct Zone * fix unclosed code-example tags * replace use of "we" with "you" * remove broken dual router example Related to angular/angular.io#3541
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| // #docregion
 | |
| import { Component } from '@angular/core';
 | |
| 
 | |
| import { Phone, PhoneData } from '../core/phone/phone.service';
 | |
| 
 | |
| @Component({
 | |
|   selector: 'phone-list',
 | |
|   templateUrl: './phone-list.template.html',
 | |
| })
 | |
| export class PhoneListComponent {
 | |
|   phones: PhoneData[];
 | |
|   query: string;
 | |
|   orderProp: string;
 | |
| 
 | |
|   constructor(phone: Phone) {
 | |
|     phone.query().subscribe(phones => {
 | |
|       this.phones = phones;
 | |
|     });
 | |
|     this.orderProp = 'age';
 | |
|   }
 | |
| 
 | |
|   getPhones(): PhoneData[] {
 | |
|     return this.sortPhones(this.filterPhones(this.phones));
 | |
|   }
 | |
| 
 | |
|   private filterPhones(phones: PhoneData[]) {
 | |
|     if (phones && this.query) {
 | |
|       return phones.filter(phone => {
 | |
|         let name = phone.name.toLowerCase();
 | |
|         let snippet = phone.snippet.toLowerCase();
 | |
|         return name.indexOf(this.query) >= 0 || snippet.indexOf(this.query) >= 0;
 | |
|       });
 | |
|     }
 | |
|     return phones;
 | |
|   }
 | |
| 
 | |
|   private sortPhones(phones: PhoneData[]) {
 | |
|     if (phones && this.orderProp) {
 | |
|       return phones
 | |
|         .slice(0) // Make a copy
 | |
|         .sort((a, b) => {
 | |
|           if (a[this.orderProp] < b[this.orderProp]) {
 | |
|             return -1;
 | |
|           } else if ([b[this.orderProp] < a[this.orderProp]]) {
 | |
|             return 1;
 | |
|           } else {
 | |
|             return 0;
 | |
|           }
 | |
|         });
 | |
|     }
 | |
|     return phones;
 | |
|   }
 | |
| }
 |