Eu tenho uma view(tela) que é composta de apenas um componente. Esse componente que estou usando como uma pagina tem em seu html apenas um campo de texto com um botao filtar e uma datatable que exibe o resultado do filtro.
Eu chego nessa view utilizando uma rota com parâmetros que filtram a lista inicialmente. Nesse momento tudo está funcionando.
Já estando na tela/componente e filtrando usando o campo texto já não é atualizada a tela.
A função que chamo no ngOnInit() é a mesma que chamo no botão filtrar. O resultado do filtro ocorre normalmente e correto depois de filtrar pelo campo de texto, mas a tela não atualiza.
html simplificado
<form (ngSubmit)="filtrar()">
<label>Competência</label>
<input [(ngModel)]="itemFilter.nome" type="text">
<button type="submit" >Filtar</button>
</form>
<ul>
<li *ngFor="let item of conjunto"> {{item.nome}}</li>
</ul>
Componente simplificado
private itemFilter: Item = new Item();
private conjunto: Item [] = new Array<Item>();
ngOnInit() {
this.filtrar();
}
filtrar() {
this.itemService.filtraItens(this.itemFilter).subscribe(
result => this.conjunto= result,
(error) => console.log(error),
);
}
Como atualizo essa tela?