Angular 2. Zdarzenie Keyup nie jest wyzwalane z sygnału wejściowego


Oto bardzo prosta sytuacja, ale naprawdę nie wiem, dlaczego to nie działa. Mam pole tekstowe, które powinno wywołać funkcję przy zdarzeniu keyup. Ale tak nie jest.
<input class="form-control m-1" type="text" #search (keyup)="filterCatalogues(search.value)">

I sam kod.
filterCatalogues(value: string): CataloguesListDto[] {
return this.catalogues.filter (catalogue => {
return catalogue.companyName === value || catalogue.catalogueName === value;
});
}

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz zmienić zdarzenie filterCatalogues. Zakładałem, że

katalogi

związany z dom
<input class="form-control m-1" type="text" #search (keyup)="filterCatalogues()">filterCatalogues(){
this.catalogues = this.catalogues.filter (catalogue => {
return catalogue.companyName === searchModel|| catalogue.catalogueName === searchModel;
});
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Używam kątowej 9.
Poniższy przykład również działa:
<input #myInput type="text"
placeholder="Search for data ..."
(keyup)="doSearch(myInput.value)"/>

Metoda doSearch aktualizuje kolejną sekcję o znalezione elementy za pomocą routera:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';@Component({
selector: 'app-search',
templateUrl: './search.component.html',
styleUrls: ['./search.component.css']
})
export class SearchComponent implements OnInit { constructor(private router: Router) { } ngOnInit(): void {
} doSearch(value: string) {
console.log(`value=${value}`);
this.router.navigateByUrl(`/search/${value}`);
}
}

Ciąg „wartość” odpowiada trasie zdefiniowanej w app.module.ts:
const routes: Routes = [
// other routes
{path: 'search/:keyword', component: ProductListComponent},
];

Następnie komponent używa usługi do przetworzenia żądania.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się