在Angular2项目Angular2路线,我努力使路由器正常工作。包括ID
在我们的应用程序,我们只有主网页,然后一个项目专用的网页。 例如,用户访问使用直接链接指向这些项目的页面
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是从外部链接直接访问的。
我可以从project.component.ts
的UUID
但如何将它传递给我的导航栏的routerLink元素,它位于app.component
?
使用的注释解决方案:
我试图用[routerLink]="['/project', {uuid: uuid}]"
但产生链接网址是:/#/想; UUID =未定义
感谢您的帮助。
你需要ŧ o将对象映射参数名称传递给参数值。 '[routerLink] = “[ '/项目',{UUID:UUID}]”' –
我想你的解决方案,所产生的链接网址是:/#/想; UUID =未定义 – BlackHoleGalaxy