Параметр запроса Angular2 из URL индекса
Я пытаюсь получить параметры запроса от URL-адреса в компоненте в Angular2
Версия: "angular2": "npm:angular2@2.0.0-beta.12",
Я пытаюсь извлечь параметр запроса id в компоненте и отобразить его
Вот просьба.
локальный:8080/index.html ID = 1
boot.ts
import 'reflect-metadata';
import 'angular2/bundles/angular2-polyfills';
import { bootstrap } from 'angular2/platform/browser';
import { provide} from 'angular2/core';
import { AppComponent } from './app.component';
import {ROUTER_PROVIDERS, Location, LocationStrategy, HashLocationStrategy} from "angular2/router";
import {HTTP_PROVIDERS} from "angular2/http";
bootstrap(AppComponent , [ROUTER_PROVIDERS, HTTP_PROVIDERS, provide(LocationStrategy, {useClass: HashLocationStrategy})]);
Вот app.component.ts
import { Component } from 'angular2/core';
import {Router, Location, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig, RouteParams} from 'angular2/router';
@Component({
selector: 'my-app',
template: '{{welcome}} {{queryParam}}',
directives: [ROUTER_DIRECTIVES]
})
export class AppComponent {
welcome: string = 'Query Param test!'
queryParam : string;
constructor(private _location: Location, private _routeParams: RouteParams){
console.log(_routeParams.get('id'));
this.queryParam = _routeParams.get('id');
}
}
Я продолжаю получать эту ошибку:
Я получил это решение из другого поста. Не уверен, как исправить ошибку
2 ответа
RouteParams
это не доступно в корневом компоненте. Он доступен только для маршрутизируемых компонентов.
Увидеть RouterOutlet
Код Soure, в его функции активации, вы можете увидеть следующее
var providers = Injector.resolve([
provide(RouteData, {useValue: nextInstruction.routeData}),
provide(RouteParams, {useValue: new RouteParams(nextInstruction.params)}),
provide(routerMod.Router, {useValue: childRouter})
]);
Обычно RouteParams внедряется через RouterOutlet в маршрутизируемые компоненты, вы не можете получить к нему доступ в не маршрутизируемых компонентах (извините за повторение).
Вы можете получить параметры запроса из _location.path() в AppComponent. Вы должны разобрать их сами. Я ищу то же самое, и не нашел лучшего решения.
Я надеюсь, что кто-то еще займется этим.