Angular 2.1.0, ActivatedRoute ( , queryParams params, - ?name=Joe. href= "/questions/211877/how-get-query-params-from-url-in-angular2/1137267#1137267" > /questions/211877/how-get-query-params-from-url-in-angular2/1137267#1137267 .)
EDIT. , - , Params, URL- , :id. Angular, https://github.com/angular/angular/issues/11023 . , , Params, .
user.service.ts
import {Injectable} from "@angular/core";
import {ActivatedRoute} from "@angular/router";
import {Subscription} from "rxjs/Rx";
import {UserModel} from "./shared/user.model";
@Injectable()
export class UserService {
protected user: UserModel;
protected subscription: Subscription;
constructor(protected activatedRoute: ActivatedRoute) {
this.subscription = this.activatedRoute.queryParams.subscribe(
(queryParams: any) => {
if (queryParams.name) {
this.setUser(queryParams.name);
}
}
)
}
setUser(name) {
this.user = new UserModel(name);
console.log('Setting user', this.user);
}
}
user.model.ts
import {Injectable} from "@angular/core";
@Injectable()
export class UserModel {
constructor(public name: string) {}
}
user.module.ts
import { NgModule } from '@angular/core';
import {UserService} from "./user.service";
@NgModule({
imports: [
],
declarations: [
],
exports: [
],
providers: [
UserService
]
})
export class UserModule { }
app.component.ts
import { Component } from '@angular/core';
import {UserService} from "./core/user/user.service";
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor(
protected userService: UserService
) {
}
}