我是角度4的新手, 从一个组件中的服务器获取响应,我希望其他组件中的响应对象如何访问
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);
}
}
我想在搜索详细信息等其他组件中搜索searchResults变量 怎么弄这个。
谢谢!
答案 0 :(得分:1)
您可以将搜索结果保存在searService中并从那里取回。为此,只需在服务中添加searchResults属性,并使用当前搜索结果进行更新。它看起来像下面这样:
export class SearchService {
public searchResults;
...
}
每当您想要更新搜索结果时,您都可以: ```
this.searchService.getSearchbyDistrictCategoryCity(this.searchObj).subscribe(data=>{
this.searchedResults = data;
this.searchService.searchResults = data;
},error=>this.errorMessage= <any>error);
您还可以覆盖搜索功能,以便在服务中查找结果时自动更新searchResults属性。
在另一个组件中,您只需从服务
中使用该属性即可this.searchedResults = this.searchService.searchResults;
如果您希望组件使用新日期自动更新,则必须将userService直接绑定到输入,或者为数据更改添加侦听器。