由于缺少角度2文档(因此它仍然处于测试阶段),我在这里发布这个问题。我试图弄清楚如何实现一个可以在任何视图上设置或取消设置的简单标志。
要说明我的问题,请参阅下面的代码段。 " showNav" flag确保人们在注销时不会看到导航。
一些评论:
欢迎任何评论!
@Component({
selector: 'app',
template: `
<nav [ngClass]="{active: showNav}"></nav>
<router-outlet></router-outlet>
`
})
@RouteConfig([
{path:'/login', name: 'Login', component: LoginComponent},
{path:'/dashboard', name: 'Dashboard', component: DashboardComponent}
])
export class AppComponent implements OnInit {
public showNav:boolean = false;
constructor(
private router:Router,
private dataService:DataService
){}
ngOnInit() {
if (!this.dataService.getStore().token) {
this.router.navigate(['Login']);
this.showNav = false;
} else {
this.router.navigate(['Dashboard']);
this.showNav = true;
}
}
答案 0 :(得分:1)
我认为你可能会想到的是Angular 1中曾经是angular.value()
的想法。
export var ShowNav: boolean = false;
bootstrap(MyApp, [provide(ShowNav, {useValue: ShowNav})]);
然后在任何视图中,这可以像任何服务或其他类型的提供者一样注入和使用。所有使用它的组件都将共享相同的值。
export class MyComponent{
constructor(showNav: ShowNav){}
...
}