Dobre pytanie!
Nie wiem dokładnie, jak to zrobić, ale tak, wiem, że na przemian tego samego, więc wysyłanie wiadomości może pomóc komuś.
Zasadniczo istnieją dwie opcje (do mojej wiedzy) do wysyłania danych przez routing
- RouteParams (używane w pytaniu)
- danych (właściwość w momencie routing)
RouteParams
Teraz, gdy wysyłamy dane za pomocą RouteParams
, musimy zdefiniować w sposób podobny do tego:
{path: '/editUser/:userId', name: 'Edit User', component: UserEditComponent}
<a href="#" [routerLink]="['Edit User',{userId: id}]"
Stosując tę metodę możemy przesłać dane normalnie ale wszystkie dane są widoczne w adresie URL
danych
gdy nie chcemy, aby pokazać dane w ścieżce URL niż mamy do przesyłania danych za pośrednictwem routingu przy użyciu właściwości data
obiektu @RouteConfig annotation
dostarczonej przez angualr2. za pomocą tej właściwości możemy wysyłać dodatkowe dane do komponentów w czasie konfiguracji trasy bez pokazywania jej w adresie URL. Oto przykład tej właściwości.
@RouteConfig([
{path: '/product/:id', component: ProductDetailComponentParam,
as: 'ProductDetail', data: {isProd: true}}])
export class ProductDetailComponentParam {
productID: string;
constructor(params: RouteParams, data: RouteData) {
this.productID = params.get('id');
console.log('Is this prod environment', data.get('isProd'));
}
}
za pomocą tego możemy wysyłać dane przez routing bez wyświetlania w adresie URL. przykład robocza sama: http://plnkr.co/edit/N5IzUH0pc3nN1O7iQZkD?p=preview]
uzyskać więcej informacji na ten odczytał awesome article
dlaczego nie można po prostu zmienić go na jakimś nieodgadnionym formie? – micronyks
Praktycznie mógłbym to zrobić - ale zastanawiam się, czy nie ma opcji, aby go w ogóle nie wyświetlać :) –
Nawet ja się z tym zastanawiam :-) – micronyks