Eu sou novo no angular 4, obtendo resposta do servidor em um componente e quero este objeto de resposta em outro componente como acessar
app.component.ts:
export class AppComponent {
selected;
skipCount: number = 0;
errorMessage: string;
searchedResults: any;
searchObj: Object = {
skipCount: this.skipCount
};
onChange(newVlaue){
console.log(newVlaue);
this.selected = newVlaue;
}
constructor(
private searchService: searchService,
private router: Router) {}
searchall() {
console.log(this.searchObj);
var searchData = this.searchObj;
console.log(searchData);
this.searchService.getSearchbyDistrictCategoryCity(this.searchObj)
.subscribe(
data => {
this.searchedResults = data;
console.log(this.searchedResults);
this.router.navigate(['/searchdetails/'])
},
error => this.errorMessage = <any>error);
}
}
Eu quero o resultado da variável searchResults em outro componente, como os detalhes da pesquisa, como conseguir isso.
Obrigado!
Você pode salvar os resultados da pesquisa em seu searService e recuperá-los de lá. Para isso, basta adicionar a propriedade searchResults em seu serviço e atualizá-lo com os resultados da pesquisa atual. Seria algo parecido com o seguinte:
export class SearchService {
public searchResults;
...
}
e sempre que você quiser atualizar os resultados da pesquisa, você deve fazer: `` `
this.searchService.getSearchbyDistrictCategoryCity(this.searchObj).subscribe(data=>{
this.searchedResults = data;
this.searchService.searchResults = data;
},error=>this.errorMessage= <any>error);
você também pode substituir sua função de pesquisa para atualizar a propriedade searchResults automaticamente ao encontrar resultados em seu serviço.
e no outro componente você pode apenas usar a propriedade do serviço
this.searchedResults = this.searchService.searchResults;
Se você deseja que o componente seja atualizado automaticamente com a nova data, você deve ligar o userService diretamente à entrada ou adicionar um ouvinte para a mudança de dados.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras