Me gustaría tener una entrada de búsqueda, que muestre el resultado al presionar una tecla. De momento, esto es lo que tengo:
mylist: Observable<MyData[]>; term = new FormControl(); ngOnInit() { this.mylist = this.term.valueChanges .debounceTime(400) .distinctUntilChanged() .switchMap(term => this.searchData(term)); } searchData(valueToSearch:string){ if(valueToSearch == ''){ this.channels = MyData.find(); } return MyData.find({'title':new RegExp(valueToSearch)}); }Funciona bastante bien, pero tengo problemas para inicializar "mylist", y creo que mi método no funciona en absoluto.
Básicamente, quiero que cuando mi componente se inicialice, eso:
this.mylist = MyData.find();Y al presionar una tecla, quiero que mi búsqueda se realice en this.mylist, para evitar hacer demasiadas solicitudes. Es posible ? Espero ser claro.
Gracias por adelantado chicos.
Debe subscribe a los datos mapeados. Modificar al siguiente código
this.term.valueChanges .debounceTime(400) .distinctUntilChanged() .switchMap(term => this.searchData(term)) .subscribe((result) => { this.mylist = result });; @Julia es correcta, modifique su función searchData() como se muestra a continuación
searchData(valueToSearch:string):Observable<any> { if(valueToSearch == ''){ this.channels = MyData.find(); } return <Observable<any>>MyData.find({'title':new RegExp(valueToSearch)}); }