[英]setting width with calc() in [ngStyle] with angular variable not working
[英]Angular2 ngstyle is not working when update variable
我想使用ngstyle来显示或隐藏导航栏,该导航栏是控制器组件的子组件。
控制器HTML
<section>
<app-nav class="nav" [ngStyle]="{'visibility':isNavShow?'visible':'hidden'}"></app-nav>
<app-main class="main"></app-main>
</section>
控制器组件
isNavShow:boolean = false;
subRouterParam:Subscription = new Subscription();
constructor(private accountService: AccountService,private route: ActivatedRoute) {}
ngOnInit() {
console.log('account id:'+this.accountService.userData.id);
this.subRouterParam = this.route.params.subscribe(
(data)=> {
this.isNavShow = data['isNavShow']==undefined?false:data['isNavShow'];
}
);
}
ngDoCheck(){
console.log(this.isNavShow);
}
ngOnDestroy(){
this.subRouterParam.unsubscribe();
}
控制器模块
@NgModule({
declarations: [
ConsoleComponent,
NavComponent
],
imports: [
MainModule,
CommonModule
],
providers:[TagService]
})
export class ConsoleModule{}
我已经记录了isNavShow
值,我很确定isNavShow
切换值但是ngstyle没有更新!
奇怪的是,我从一开始就设置为hidden
,而第一次是从hidden
切换为visible
。 但是,即使isNavShow
更改了,ngStyle也没有更改。
[更新!]我将导航栏更改为这种格式, isNavShow
确实正确更改了。 但是ngStyle不起作用。
<div class="nav" [ngStyle]="{'visibility':isNavShow?'visible':'hidden'}">{{isNavShow}}</div>
路由器的参数只能是字符串,因为它们来自URL。
尝试这个:
this.isNavShow = data['isNavShow'] && data['isNavShow'].toLowerCase() === 'true';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.