#angular #angular2-routing #angular2-router3
#angular #angular2-маршрутизация #angular2-router3
Вопрос:
Мне нужно установить [queryParams]
для a routerLink
с помощью свойства компонента, то есть
@Component({
...
template: '<a [routerLink]="..." [queryParams]="queryParams | async">...</a>
...
})
export class MyComponent {
...
queryParams: any;
...
constructor(route: ActivatedRoute) {
this.queryParams = route.queryParams;
...
}
}
Но этот подход не работает, к маршруту не добавляются параметры запроса. Чего мне не хватает?
Комментарии:
1. действительно
async
ли там нужен канал?2. Какое значение
this.queryParams
имеет?3. Это
BehaviorSubject
, если я подпишусь на него и войду в консоль, я получуObject {datum: "19-10-2016"} datum : "19-10-2016" __proto__ : Object
Ответ №1:
Вы можете добавить параметры запроса, используя этот правильный синтаксис
this.router.navigate([yourRouteName], {queryParams:{ida:1,Idb:2,Idc:3}});
или
<a [routeLink]="yourRouteName, {queryParams:{ida:1,Idb:2,Idc:3}}"
затем вы можете получить параметр запроса, используя приведенный ниже синтаксис
import { Router, Route, ActivatedRoute } from '@angular/router';
ngOnint{
this.IDA= this.router.routerState.snapshot.root.queryParams["Ida"];
this.IDB= this.router.routerState.snapshot.root.queryParams["Idb"];
this.IDC= this.router.routerState.snapshot.root.queryParams["Idc"];
}
Надеюсь, это вам поможет.