Comment puis-je obtenir l'url courante dans Angular 4 ? J'ai beaucoup cherché sur le web, mais je n'ai pas trouvé de solution.
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { RouterModule, Router } from '@angular/Router';
import { AppComponent } from './app.component';
import { TestComponent } from './test/test.component';
import { OtherComponent } from './other/other.component';
import { UnitComponent } from './unit/unit.component';
@NgModule ({
declarations: [
AppComponent,
TestComponent,
OtherComponent,
UnitComponent
],
imports: [
BrowserModule,
RouterModule.forRoot([
{
path: 'test',
component: TestComponent
},
{
path: 'unit',
component: UnitComponent
},
{
path: 'other',
component: OtherComponent
}
]),
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app.component.html
<!-- The content below is only a placeholder and can be replaced -->
<div>
<h1>Welcome to {{title}}!!</h1>
<ul>
<li>
<a routerLink="/test">Test</a>
</li>
<li>
<a routerLink="/unit">Unit</a>
</li>
<li>
<a routerLink="/other">Other</a>
</li>
</ul>
</div>
<br/>
<router-outlet></router-outlet>
app.component.ts
import { Component} from '@angular/core';
@Component ({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent{
title = 'Angular JS 4';
arr = ['abcd','xyz','pqrs'];
}
autre.composant.ts
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { Router } from '@angular/router';
@Component({
selector: 'app-other',
templateUrl: './other.component.html',
styleUrls: ['./other.component.css']
})
export class OtherComponent implements OnInit {
public href: string = "";
url: string = "asdf";
constructor(private router : Router) {}
ngOnInit() {
this.href = this.router.url;
console.log(this.router.url);
}
}
test.component.ts
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { Router } from '@angular/router';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
export class TestComponent implements OnInit {
route: string;
currentURL='';
constructor() {
this.currentURL = window.location.href;
}
ngOnInit() { }
}
En ce moment, j'obtiens un problème de console après avoir cliqué sur autre lien
ERROR Error: Uncaught (in promise): Error: No provider for Router!
0 votes
Quelle url ? ?? url du navigateur et s'il vous plaît ajouter un peu de code les choses que vous avez essayé dans de sorte que de comprendre votre question dans plus de détails
0 votes
Oui, l'url de la page actuelle dans le navigateur
1 votes
@MaciejTreder : lien J'ai déjà utilisé ce lien, mais ça n'a pas marché.
0 votes
Ok. J'ai compris ton point de vue. As-tu essayé la solution de la réponse ?
0 votes
Comment accéder à cette.route variable dans le fichier de vue app.component.html ? Je veux afficher l'url actuelle dans le fichier app.component.html.
export class TestComponent implements OnInit { route: string; constructor(location: Location, router: Router) { router.events.subscribe((val) => { **this.route** = location.path(); }); } ngOnInit() { } }
1 votes
Vous pouvez l'utiliser comme import { Component } from '@angular/core' ; @Component({ selector : 'app-Root', templateUrl : './app.component.html', styleUrls : ['./app.component.css'] }) export class AppComponent { title = 'app' ; currentURL='' ; constructor() { this.currentURL=window.location.href ; } }
0 votes
@VindhyachalKumar : merci beaucoup. Cela a fonctionné, en interpolant {{this.currentURL}} dans le fichier de visualisation.
0 votes
@NilamDhok : J'ai ajouté le même code dans ma réponse. Vous pouvez le marquer comme réponse.
1 votes
Vous avez une coquille dans
import { RouterModule, Router } from '@angular/Router';
il devrait l'être@angular/router
.1 votes
J'ai essayé de reproduire votre problème dans plunkr. Tout fonctionne : plnkr.co/edit/0x3pCOKwFjAGRxC4hZMy?p=preview