J'ai défini mes itinéraires comme suit:Angular2 haché urls obtenir url actuelle
const appRoutes: Routes = [
{
path: 'auth',
component: AuthenticationComponent,
},
{
path: '',
component: HomeComponent,
canActivate:[AuthenticationGuard],
children:[
{
path: 'list',
component: TaskListComponent,
canActivate:[AuthenticationGuard]
},
{
path: 'create',
component: CreateTaskComponent,
canActivate:[AuthenticationGuard]
},
{
path: 'profile',
component: ProfileComponent,
canActivate:[AuthenticationGuard]
},
{
path: 'agreement',
component: UserAgreementComponent,
canActivate:[AuthenticationGuard]
},
]
},
];
Et je naviguer sur eux comme suit:
<nav class="mdl-navigation">
<a class="mdl-navigation__link" href="#/list">List</a>
<a class="mdl-navigation__link" href="#/create">Create</a>
<a class="mdl-navigation__link" href="#/profile">Profile <span *ngIf="profileNotPresent" mdl-badge="Start"></span> </a>
<button class="mdl-button mdl-js-button" (click)="logout()">
<i class="material-icons">exit_to_app</i>
</button>
</nav>
je devais ajouter hash parce que quand je déployé l'application il a commencé à me lancer erreur 404 pour les routes. Avec les URLs hachées cela fonctionne.
Cependant, dans mon code j'avais une condition où je montrais une div à condition était vraie si elle était la ligne de base:
if(this.router.url == '/'){
this.showHomeContent=true;
}
que le temps sans hachage mes urls étaient «/», «/profil 'etc et il travaillait corrrrectement. Maintenant, ils sont '#', '#/profile' etc et cette condition ne fonctionne plus, ce qui fait que la div spécifique reste toujours ouverte.
Comment puis-je résoudre ce problème?
Est-ce que l'ajout d'un hachage suffit? '== # /' – DeborahK