Search code examples
angulartabsangular-routing

Syntax error, unrecognized expression: /service-details/1139#overview Angular 5


I am doing simple routing in angular. It is working fine but when I want client side routing means use of nav tabs to move in a same page then it is throwing an error. Here is my code :

service-detail.component.html

 <ul class="asidemenu">
          <li><a [routerLink]="['/service-details',serviceId]" fragment="overview" (click)="onAnchorClick()" class="
              active"><span
                class="asidemenu-icon"><img src="assets/images/binoculars.svg" alt=""></span><span class="asidemenu-title">Overview</span></a></li>
          <li><a [routerLink]="['/service-details',serviceId]" fragment="review-analytics" (click)="onAnchorClick()"><span
                class="asidemenu-icon"><img src="assets/images/graph-analysis.svg" alt=""></span><span class="asidemenu-title">Sentiment</span></a></li>
          <li><a [routerLink]="['/service-details',serviceId]" fragment="expert-review" (click)="onAnchorClick()"><span
                class="asidemenu-icon"><img src="assets/images/review.svg" alt=""></span><span class="asidemenu-title">Expert
                Reviews</span></a></li>
    <ul>

<div id='overview'> Overview (Removed Original content)</div>
<div id='review-analytics'> Reviews (Removed Original content)</div>
<div id='expert-review'> Expert Reviews (Removed Original content)</div>

as per above code I can move in same page freely but this error occurs Syntax error, unrecognized expression: /service-details/1139#overview every time.

May be this is routing issue then how to fix it ?

Thank you in advance.


Solution

  • You need to enable anchorScrolling option where you import RouterModule

    @NgModule({
      imports: [
        RouterModule.forRoot(routes, {
          anchorScrolling: 'enabled',
        })
      ],
    })
    ...
    

    More Info: https://medium.com/lacolaco-blog/introduce-router-scroller-in-angular-v6-1-ef34278461e9