Je suis en train d’essayer de commencer date de url. L'URL ressemble à http: // sitename/booking? Startdate = 28-08-2017 Ci-dessous est mon code
aap.module.ts
import {...};
@NgModule({
declarations: [
AppComponent, ModalComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
JsonpModule,
ReactiveFormsModule,
RouterModule.forRoot([{
path: '',
component: AppComponent
},
]),
],
providers: [ContactService, AddonService, MainService],
bootstrap: [AppComponent]
})
export class AppModule { }
aap.component.ts
import {...}
import {Router, ActivatedRoute, Params} from '@angular/router';
constructor(private activatedRoute: ActivatedRoute) {
// subscribe to router event
this.activatedRoute.queryParams.subscribe((params: Params) => {
console.log(params);
});
}
sa donnant par le dessous l'erreur
Rejet de la promesse non gérée: pas de base href set. Veuillez fournir une valeur pour le jeton APP_BASE_HREF ou ajouter un élément de base au document. ; Zone:; Tâche: Promise.then; Valeur: Erreur: Pas de base href définie. Veuillez fournir une valeur pour le jeton APP_BASE_HREF ou ajouter un élément de base au document.
Comment angulaire devrait savoir base href?
Cela devrait faire l'affaire en récupérant les paramètres à partir de l'URL:
constructor(private activatedRoute: ActivatedRoute) {
this.activatedRoute.queryParams.subscribe(params => {
let date = params['startdate'];
console.log(date); // Print the parameter to the console.
});
}
La variable locale date doit maintenant contenir le paramètre startdate de l'URL. Les modules Router et Params peuvent être supprimés (s'ils ne sont pas utilisés ailleurs dans la classe).
Routes
export const MyRoutes: Routes = [
{ path: '/items/:id', component: MyComponent }
]
Composant
import { ActivatedRoute } from '@angular/router';
public id: string;
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.id = this.route.snapshot.paramMap.get('id');
}
constructor(private activatedRoute: ActivatedRoute) {
}
ngOnInit() {
this.activatedRoute.params.subscribe(paramsId => {
this.id = paramsId.id;
});
console.log(this.id);
}
utilisez paramMap
Cela fournira des noms de paramètres et leurs valeurs
//http://localhost:4200/categories/1
//{ path: 'categories/:category', component: CategoryComponent },
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.paramMap.subscribe(params => {
console.log(params)
})
}
import {Router, ActivatedRoute, Params} from '@angular/router';
constructor(private activatedRoute: ActivatedRoute) { }
ngOnInit() {
this.activatedRoute.paramMap
.subscribe( params => {
let id = +params.get('id');
console.log('id' + id);
console.log(params);
id12
ParamsAsMap {params: {…}}
keys: Array(1)
0: "id"
length: 1
__proto__: Array(0)
params:
id: "12"
__proto__: Object
__proto__: Object
}
)
}
La réponse acceptée utilise l'observable pour extraire le paramètre qui peut être utile car le paramètre changera tout au long du cycle de vie du composant.
Si le paramètre ne change pas, on peut envisager d’utiliser l’objet params sur l’instantané de l’url du routeur.
snapshot.params
renvoie tous les paramètres de l'URL dans un objet.
constructor(private route: ActivateRoute){}
ngOnInit() {
const allParams = this.route.snapshot.params // allParams is an object
const param1 = allParams.param1 // retrieve the parameter "param1"
}
Vérifiez les paramètres à partir d'une chaîne d'URL ou en tant que :param
dans votre routeConfig
downstream.component.ts
...
import {Router,ActivatedRoute} from '@angular/router';
...
export class DownstreamComponent {
constructor(
private route: ActivatedRoute,
private router: Router
) {
if(this.route.snapshot.queryParams)
console.log(this.route.snapshot.params); // e.g. :param1 in routeConfig
if(this.route.snapshot.queryParamMap.get('param1'))
console.log(this.route.snapshot.queryParamMap.get('param1')); // e.g. in URI ?param1=blah
}
}