Angular 2重新加载routerLink用户再次点击

标签 angular

我一直在寻找解决方案,但仍然没有解决这个问题。当用户点击<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/

相关文章:

javascript - 为什么combineLatest不执行?

angular - 错误 : Cannot match any routes, URL 段未定义

javascript - Angular @input 属性以感叹号结尾?

javascript - 在 ngOnDestroy() 上打开模态并且不重定向到上一页

javascript - Angular 动态表单嵌套字段

angular - 是否可以根据某些条件停止路由器导航

css - 无法以 Angular 获取 openlayers css

angular - 如何在 mat-select 中使用 'overlayDir' 指令?

angular - 如何在angular2中使用组件名称动态加载组件?

css - Ionic CSS 类分配