路由下面的代碼說明了我的角2應用關於在Angular2
RouterModule.forRoot([
{path:'' , component:HomeComponent},
{path:'acategories/:id/products/:pid' , component:ProductComponent},
{path:'acategories/:id/products' , component:ProductsComponent},
{path:'acart' , component:CartComponent},
{path:'about' , component:AboutComponent},
{path:'aorders' , component:OrderDetailsComponent},
{path:'asearch' , component: ProductSearchComponent},
{path:'**',component:PageNotFoundComponent}
])
我的根組件具有指向這些航路,如下面的圖像描繪
用戶搜索某個項目通過在文本框中輸入文本並單擊搜索按鈕。一旦用戶單擊「搜索」,將在根組件中執行以下方法 ,其基本上導航到「搜索」路線。
onSearch()
{
if(this.formGroup.valid)
{
this.router.navigate(['asearch' , {search:this.formGroup.controls['search'].value}]);
}
}
現在我面臨的問題是,當「asearch」路線已經被激活[即其當前的活動路線「]和用戶試圖 搜索項,結果不會顯示出來。
。下面是在ProductSearchComponent代碼從服務器獲取結果
ngOnInit() {
console.log('ngOnInit()');
this.route.params.subscribe((params) => {
this.search = params['search'];
})
this.service.searchProducts(this.search).subscribe({
next: (data) => {
this.products = data;
},
error: (err) => { this.toaster.error(err) }
})
}
很難說,沒有看到什麼代碼導致這些結果顯示在所有。 –
@GünterZöchbauer,將更新我的問題 – refactor
它會不會像{{:asearch /:id',component:ProductSearchComponent}'這樣的路徑工作嗎? – echonax