В проекте Angular2 я стараюсь, чтобы маршрутизатор работал правильно.Angular2 route, включая идентификатор
В нашем приложении у нас есть только главная страница, а затем выделенные страницы проекта. Например, доступ пользователей этих проектов страницы, используя прямую ссылку, указывающую на
http:/ourwebsite.com/#/project/b288ba45-3b41-4862-9fed-7271245b9c29
Я хочу, в навигационной панели заголовка, чтобы создать ссылку, указывающую на данный компонент, даже если пользователь идет домой после этого.
Например: пользователь переходит к своему проекту, а затем нажмите Home
, я хочу, чтобы ссылка See project
могла перенаправить пользователя на его предыдущий точный проект.
My Routes
:
export const ROUTES: Routes = [
{ path: 'home', component: HomeComponent },
{ path: 'project/:uuid', component: ProjectComponent },
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: '**', component: PageNotFoundComponent }
];
Мои app.component.html
с нав заголовком:
<ul class="nav navbar-nav">
<li><a [routerLink]="['/home']">Home</a></li>
<li><a [routerLink]="['/project', uuid]">See a project</a></li
</ul>
Я попробовал это в app.component.ts
:
import { Component, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { Observable, Subscription } from 'rxjs';
import 'rxjs/Rx';
@Component({
selector: 'app-root',
encapsulation: ViewEncapsulation.None,
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit, OnDestroy {
uuid: string;
private subscription: Subscription;
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.subscription = this.route.params.subscribe(params => {
this.uuid = params['uuid'];
console.log('Route UUID', this.uuid);
});
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}
Но факт является UUID
напечатан в консоли, как Не определено как этот маршрут e напрямую доступен из внешней ссылки.
я могу получить UUID
от project.component.ts
, но как передать его элемент routerLink в моей навигационной панели, которая находится в app.component
?
Использования комментария решения:
Я пытался использовать [routerLink]="['/project', {uuid: uuid}]"
но полученная ссылку Ссылка:/#/думает, UUID = неопределенные
Спасибо за вашу помощь.
Вам нужно т o передать имена параметров объекта в значения параметров. '[routerLink] =" ['/ project', {uuid: uuid}] "' –
Я пробовал ваше решение, а полученный URL-адрес ссылки:/#/think; uuid = undefined – BlackHoleGalaxy