Oii Tarcisio!
Fiz uns testes aqui e realmente o ngOnChanges
só consegue detectar mudanças em propriedades do componente que estiverem decoradas com o @Input()
.
No caso que você cita, pelo que entendi em meus testes, o valor de filtro
vai ter que ser passado para algum componente que espera receber este valor como uma "propriedade input", e então neste componente deverá ter o ngOnChanges
.
Aqui está os código do teste que fiz:
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<input (keyup)="title = $event.target.value" type="search">
<app-test [text]='title'></app-test>
`,
styles: []
})
export class AppComponent {
title = '';
}
test.component.ts
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
@Component({
selector: 'app-test',
template: `<h1>{{text}}</h1>`,
styles: []
})
export class TestComponent implements OnChanges {
@Input() text = '';
ngOnChanges(changes: SimpleChanges) {
console.log(changes);
}
}
Veja se te ajuda a resolver a sua situação!
Abraços