Holen Sie sich die route query params
Ich versuche, die Migration von rc1 bis rc4 und ich Schwierigkeiten haben, query-string-Parameter. ActivatedRoute Objekt immer leer.
held.Komponente.ts
import {Component, OnInit} from "@angular/core";
import {Control} from "@angular/common";
import {ROUTER_DIRECTIVES, ActivatedRoute} from '@angular/router';
@Component({
template: '../partials/main.html',
directives: [ROUTER_DIRECTIVES]
})
export class HeroComponent implements OnInit {
constructor(private _activatedRoute: activatedRoute) {
}
ngOnInit() {
this._activatedRoute.params.subscribe(params => {
console.log(params);
});
}
}
main.ts
import {bootstrap} from '@angular/platform-browser-dynamic';
import {HTTP_PROVIDERS, RequestOptions, Http} from '@angular/http';
import {AppRouterProviders} from './app.routes';
bootstrap(AppComponent, [
AppRouterProviders,
HTTP_PROVIDERS
]);
app.Komponente.ts
import {Component, OnInit} from '@angular/core';
import {HeroComponent} from './hero.component';
import {RouteConfig, Router, ROUTER_DIRECTIVES} from '@angular/router';
@Component({
selector: 'my-app',
templateUrl: '../partials/main.html',
directives: [
HeroComponent,
ROUTER_DIRECTIVES
]
})
export class AppComponent {
}
partials/main.html
<a class="nav-link" [routerLink]="['/']" [queryParams]="{st: 'new'}">New</a>
app.Routen.ts
import {provideRouter, RouterConfig} from '@angular/router';
import {HeroComponent} from './hero.component';
import {ErrorComponent} from './error.component';
const routes: RouterConfig = [
{path:'', component: HeroComponent},
{path:'**', component: ErrorComponent}
];
export const AppRouterProviders = [
provideRouter(routes)
];
Wenn ich auf den link 'Neue' Konsole druckt leeres Objekt
Object {}
Aktualisiert
InformationsquelleAutor izupet | 2016-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
update (2.0.0 final)
(
somepath/:someparam/someotherpath
), den man abonnieren kann, um Sie mit_router.queryParams.subscribe(...)
:original
Wenn Sie wollen
queryParams
statt route params (somepath/:someparam/someotherpath
), den man abonnieren kann, um Sie mit_router.routerState.queryParams.subscribe(...)
:Plunker Beispiel
Ich werde mal schauen später, ping mich, wenn ich es nicht vergesse. Meine todo-Liste wächst schnell ...
Ich verstehe nicht, Ihre Frage. Was meinst du mit "leer"?
ActivatedRoute
übergeben wird, sonst.params.subscribe()
werfen würde.Die ActivatedRoute selbst enthalten sollte-query params über Komponente aktiviert, aber ich bekomme leeres Objekt, wenn ich "abonnieren". Weiß nicht, wie man besser klären.
Aber es gibt keinen parameter, der beim erstmaligen laden. Sie Plunker nicht
params
überhaupt. DieNew
link verwendetqueryParams
aber das ist nur bestanden, wenn der link angeklickt wird.InformationsquelleAutor Günter Zöchbauer
Ich war kämpfen mit dem gleichen problem für eine lange Zeit.
Die Antwort ist schwierig, in der Dokumentation hieß es:
Den trick Antwort ist 'route-Komponente', das bedeutet, dass ActivatedRoute nur auf Komponenten, die weitergeleitet werden. In anderen Worten werden nur die Komponenten beschrieben, die in der routing-Tabelle.
> Lesen der Verschleierung offizielle Dokumentation hier. Es wird von 'route-verbunden mit einer Komponente laden in eine Steckdose'. Wir können nur erahnen, was eine Steckdose...
Schrieb ich ein wenig investigative-code, um Forschung zu diesem problem in stand-alone-app.- Modul.ts:
Versuchen, das Modul für die folgenden URI:
Glück, hoffe, der code ist demonstrativ.
InformationsquelleAutor Dudi Boy
Winkel-überprüfen Sie die Dokumentation, es ist alles da:
https://angular.io/docs/ts/latest/guide/router.html
ist dies, wie Sie übergeben die parameter? onSelect(held: Held) { dieses.router.navigieren(['/Helden", Helden.id]); }
[routerLink]="['/']" [queryParams]="{st: 'rec'}" I want to get st param
Dann probieren Sie die neue Art und Weise. sollten Sie wirklich Lesen Sie diesen Abschnitt, auf die docs.
Hat aber nichts scheint zu funktionieren...
InformationsquelleAutor Avi