Skip to content

Instantly share code, notes, and snippets.

@cartant
Last active August 4, 2017 05:38
Show Gist options
  • Save cartant/065cb256e4640e3b82608d1276545d97 to your computer and use it in GitHub Desktop.
Save cartant/065cb256e4640e3b82608d1276545d97 to your computer and use it in GitHub Desktop.
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
selector: "user-search",
template: `
<form [formGroup]="form">
<md-input-container>
<input formControlName="username" mdInput placeholder="Username">
</md-input-container>
</form>
<md-list>
<md-list-item *ngFor="let user of users">
<p md-line>{{ user.login }}</p>
<p md-line>{{ user.public_repos }} public repo(s)</p>
</md-list-item>
</md-list>
`
})
export class UserSearchComponent implements OnDestroy, OnInit {
@Input() public observer: PartialObserver<string>;
@Input() public users: User[];
public form: FormGroup;
private _subscription: Subscription;
constructor(formBuilder: FormBuilder) {
this.form = formBuilder.group({ username: [] });
}
ngOnDestroy(): void {
this._subscription.unsubscribe();
}
ngOnInit(): void {
this._subscription = this.form.valueChanges
.map(values => values.username)
.subscribe(this.observer);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment