我一直在寻找解决方案,但仍然没有解决这个问题。当用户点击<a>
时然后他必须定向到组件 WrapPost,WrapPost 向他显示一些信息。但是当用户点击<a>
时第二次就什么也没发生。如何激活多点击routerLink
WrapPost 会每次更新吗?
组件搜索
<div class="formShell">
<a class="aSearch" [routerLink]="['/search']"
[queryParams]="{category: selectedCategory, search: searchForm.value}">
<input class="searchForm" placeholder="..." #searchForm>
</div>
路线
const appRoutes: Routes = [
{ path: '', component: Home },
{ path: 'search', component: WrapPost},
{ path: 'login', component: Login },
{ path: '**', component: Error }
];
最佳答案
您的意思是您希望每次单击链接时刷新数据。
实际上,您可以通过解耦服务中的数据检索并创建一个在单击链接时应调用的函数(使用该服务检索数据)来实现此目的。像这样的事情:
<a role="button" (click)="reloadData()"></a>
或者你可以创建一个重定向组件,它的作用只是重定向到搜索路由。像这样的东西。
import {Component, OnInit} from "@angular/core";
import {Router} from "@angular/router";
@Component({
selector: 'redirect',
template: ''
})
export class RedirectComponent implements OnInit {
constructor(private router: Router) {
}
ngOnInit() {
this.router.navigate(['/search']);
}
}
并添加路线
const appRoutes: Routes = [
// other routes
{ path: 'redirect', component: RedirectComponent},
];
链接将是这样的 <a routerLink="/redirect"></a>
第一个建议比第二个解决方案要好得多。
关于Angular 2重新加载routerLink用户再次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42186614/