【发布时间】:2018-01-11 04:24:51
【问题描述】:
文件结构:
我有一个输入文本框,我在其中输入一些内容并将该值传递给名为 onRecievingResults() 的函数,然后使用参数将该值传递给另一个组件并发出 http 请求,如果我再次搜索我会得到结果无法得到结果。
faq.component.ts
onRecievingResults() {
this.router.navigate(['results', this.inputValue], {relativeTo: this.route});
}
search-results.component.ts
export class SearchResultsComponent implements OnInit {
data: any[];
item: any[];
inputValue;
constructor(private faqService: FaqService,private route: ActivatedRoute,) {
}
ngOnInit() {
this.route.params.subscribe(
(params : Params) => {
this.inputValue = params["inputValue"];
}
);
this.faqService.getServers(this.inputValue)
.subscribe(
(data) => {
this.item = data.items;
},
(error) => console.log(error)
);
}
}
faq.service.ts
getServers(inputValue) {
return this.http.get(Staticdata.apiBaseUrl + "/2.2/search/advanced?key="+ Staticdata.key +"&access_token="+ Staticdata.access_token +"&/2.2/search/advanced?order=desc&sort=activity&accepted=True&closed=True&title=" + inputValue + Staticdata.redirectUrl + "&filter="+ Staticdata.filters)
.map(
(response: Response) => {
const items = response.json();
return items;
},
)
.catch(
(error: Response) => {
return Observable.throw(error);
}
);
}
【问题讨论】:
-
一个组件只会初始化一次。
-
在你的表单控件上绑定
valueChanges -
如何一次又一次地重新初始化它,以便我可以搜索不同的值? @Hoyen
-
例子请@BhavikPatel
-
你初始化它一次,只要值改变它就会触发它。就像绑定一个事件。
标签: angular parameters routing