0

这是 componet.ts 文件中的 ngOnInit

ngOnInit() {
      this.locationService.getLocation().subscribe( locations => {
      this.locations = locations;
    });
  }
<a [routerLink]="['/locations-list']">

当我使用 a[routerLink]导航到上述组件时,它会导航到该组件并加载视图,但它不会在ngOnInit方法之上触发。但是,如果我刷新页面,它就可以正常工作。
有没有解决上述问题的方法。

我已经习惯href了导航到页面,并且使用href上述方法总是可以正常工作,但速度很慢。这就是为什么我更改href[routerLink].

这是包含视图的 component.html

                <div class="table-responsive">
                  <table class="table">
                    <thead class=" text-primary">
                      <th>
                        Location Name
                      </th>

                    </thead>
                    <tbody *ngIf="locations?.length > 0">
                      <tr *ngFor="let location of locations">
                        <td *ngIf="location.verified != false">
                          {{location.locationName}}
                        </td>
                      </tr>
                    </tbody>
                  </table>
                </div>
              </div>
4

3 回答 3

1

当路由器参数更改时,基本路由保持不变。所以它不会触发ngOnInit. 所以订阅路由事件

ngOnInit() {
     this.route.params.subscribe(
     params => { 
            // your code
     });
  }
于 2019-04-24T04:44:31.020 回答
1

ngOnInit() 仅在组件实例化后调用一次,但不会在路由更改时调用。您可以注入路由器并订阅它的事件或参数以获取有关路由更改的通知。

ngOnInit() {
     this.route.params.subscribe(params: any) => {
       if(params) //your code
    });
}
于 2019-04-24T04:49:32.653 回答
1

试试这个

// on click call this function
    (click)="HyperLink()"
// on ts file 
    HyperLink(){
       window.open('/locations-list');  
   }
于 2019-04-24T05:06:02.960 回答