mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
93 lines
2.8 KiB
TypeScript
93 lines
2.8 KiB
TypeScript
import {Component, OnDestroy, ViewEncapsulation} from '@angular/core';
|
|
import {FormControl} from '@angular/forms';
|
|
import {Subscription} from 'rxjs/Subscription';
|
|
|
|
@Component({
|
|
moduleId: module.id,
|
|
selector: 'autocomplete-demo',
|
|
templateUrl: 'autocomplete-demo.html',
|
|
styleUrls: ['autocomplete-demo.css'],
|
|
encapsulation: ViewEncapsulation.None
|
|
})
|
|
export class AutocompleteDemo implements OnDestroy {
|
|
stateCtrl = new FormControl();
|
|
currentState = '';
|
|
topHeightCtrl = new FormControl(0);
|
|
|
|
reactiveStates: any[];
|
|
tdStates: any[];
|
|
|
|
reactiveValueSub: Subscription;
|
|
tdDisabled = false;
|
|
|
|
states = [
|
|
{code: 'AL', name: 'Alabama'},
|
|
{code: 'AK', name: 'Alaska'},
|
|
{code: 'AZ', name: 'Arizona'},
|
|
{code: 'AR', name: 'Arkansas'},
|
|
{code: 'CA', name: 'California'},
|
|
{code: 'CO', name: 'Colorado'},
|
|
{code: 'CT', name: 'Connecticut'},
|
|
{code: 'DE', name: 'Delaware'},
|
|
{code: 'FL', name: 'Florida'},
|
|
{code: 'GA', name: 'Georgia'},
|
|
{code: 'HI', name: 'Hawaii'},
|
|
{code: 'ID', name: 'Idaho'},
|
|
{code: 'IL', name: 'Illinois'},
|
|
{code: 'IN', name: 'Indiana'},
|
|
{code: 'IA', name: 'Iowa'},
|
|
{code: 'KS', name: 'Kansas'},
|
|
{code: 'KY', name: 'Kentucky'},
|
|
{code: 'LA', name: 'Louisiana'},
|
|
{code: 'ME', name: 'Maine'},
|
|
{code: 'MD', name: 'Maryland'},
|
|
{code: 'MA', name: 'Massachusetts'},
|
|
{code: 'MI', name: 'Michigan'},
|
|
{code: 'MN', name: 'Minnesota'},
|
|
{code: 'MS', name: 'Mississippi'},
|
|
{code: 'MO', name: 'Missouri'},
|
|
{code: 'MT', name: 'Montana'},
|
|
{code: 'NE', name: 'Nebraska'},
|
|
{code: 'NV', name: 'Nevada'},
|
|
{code: 'NH', name: 'New Hampshire'},
|
|
{code: 'NJ', name: 'New Jersey'},
|
|
{code: 'NM', name: 'New Mexico'},
|
|
{code: 'NY', name: 'New York'},
|
|
{code: 'NC', name: 'North Carolina'},
|
|
{code: 'ND', name: 'North Dakota'},
|
|
{code: 'OH', name: 'Ohio'},
|
|
{code: 'OK', name: 'Oklahoma'},
|
|
{code: 'OR', name: 'Oregon'},
|
|
{code: 'PA', name: 'Pennsylvania'},
|
|
{code: 'RI', name: 'Rhode Island'},
|
|
{code: 'SC', name: 'South Carolina'},
|
|
{code: 'SD', name: 'South Dakota'},
|
|
{code: 'TN', name: 'Tennessee'},
|
|
{code: 'TX', name: 'Texas'},
|
|
{code: 'UT', name: 'Utah'},
|
|
{code: 'VT', name: 'Vermont'},
|
|
{code: 'VA', name: 'Virginia'},
|
|
{code: 'WA', name: 'Washington'},
|
|
{code: 'WV', name: 'West Virginia'},
|
|
{code: 'WI', name: 'Wisconsin'},
|
|
{code: 'WY', name: 'Wyoming'},
|
|
];
|
|
|
|
constructor() {
|
|
this.reactiveStates = this.states;
|
|
this.tdStates = this.states;
|
|
this.reactiveValueSub =
|
|
this.stateCtrl.valueChanges.subscribe(val => this.reactiveStates = this.filterStates(val));
|
|
|
|
}
|
|
|
|
filterStates(val: string) {
|
|
return val ? this.states.filter((s) => s.name.match(new RegExp(val, 'gi'))) : this.states;
|
|
}
|
|
|
|
ngOnDestroy() {
|
|
this.reactiveValueSub.unsubscribe();
|
|
}
|
|
|
|
}
|