유형 문자열 배열의 관찰 가능 항목을 검색/필터링하려면 어떻게합니까?Observable onKeyUp을 어떻게 필터링 할 수 있습니까?
예를 들어, 내가
names$ = Observable.of(['Lenovo','Dell','Toshiba','Apple','Microsoft']);
가 지금은에 따라이 관찰을 필터링하고 싶은 관찰 다음 한 입력 텍스트 상자에 어떤 사용자 유형.
그래서 다음 코드가 있습니다 & 입력 상자에 입력 한 사용자의 searchTerm을 기준으로 필터링 된 관찰 가능을 반환하고 싶습니다.
클라이언트 측 솔루션을 찾고 있습니다. 데이터를 필터링하기 위해 서버에서 검색어를 전송할 수없는 이유로 클라이언트 측에 이미 데이터가 있습니다 &. 나는 또한이 예제에서 직접 배열 자체에 필터를 사용할 수 있지만 이것을 관찰 가능하게하고 싶다고 생각한다.
또한 flatmap 연산자를 사용해 배열을 평평하게 만들었지 만, 문자열 배열 형식의 끝에있는 관찰 가능 항목을 반환 할 수 없었습니다.
도움이 될 것입니다. 미리 감사드립니다.
import {Component, OnInit} from '@angular/core';
import {Observable} from 'rxjs';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
names$: Observable<string[]>;
filteredNames$: Observable<string[]>;
searchTerm: string;
ngOnInit() {
this.names$ = Observable.of(['Lenovo', 'Dell', 'Toshiba', 'Apple', 'Microsoft']);
}
// HOW TO IMPLEMENT THIS FUNCTION ??
onkeypress(value) {
console.log(value);
this.names$ = this.names$.map(names => names.indexOf(value) > 0)
// .filter(x=>{console.log(x.indexOf(value));return x.indexOf(value)>0})
// .subscribe(
// (data)=>console.log(data), (error)=>console.log('Error'+error),
// ()=>console.log('complete'));
}
}
이것은 작은 일이지만이 키 누르기 이벤트를 수신하고 함수의 keyup를 호출하고 있습니다. 네가 여기서 원하는 행동을 할 지 모르겠다. –
@Brendan Whiting 실수를 지적 해 주셔서 감사합니다. 나는 그것을 고쳤다. – hp8888