首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在angular中通过标题按钮隐藏/显示

如何在angular中通过标题按钮隐藏/显示
EN

Stack Overflow用户
提问于 2018-05-30 16:19:02
回答 2查看 397关注 0票数 1

我在标题中添加了一个按钮来显示/隐藏导航抽屉。由于按钮和导航抽屉位于不同的组件中,那么哪个选项更容易沟通?

Sample demo

EN

回答 2

Stack Overflow用户

发布于 2018-05-30 16:29:07

您可以使用服务来预置导航栏的状态。为此,您可以在服务中使用可观察布尔型。单击该按钮时,将其设置为true或false。然后,从导航栏组件订阅该服务属性的,以隐藏导航栏中的内容。

在您的服务中

代码语言:javascript
运行
复制
@Injectable()
export class GlobalDataService {
  private showNavigationBar = new Subject<boolean>();

  constructor() {

  }

  public getNavigationbarState(): Observable<boolean> {
    return this.showNavigationBar.asObservable();
  }

  public setNavigationbarState(value: boolean) {
    return this.showNavigationBar.next(notification);
  }
}

在header组件按钮中,单击event。

代码语言:javascript
运行
复制
constructor(private globalDatServce:GlobalDataService) {

}

public onButtonClick(): void {
  this.globalDataService.setNavigationbarState(true); // pass true or false as needed
}

在导航栏组件构造函数中。

代码语言:javascript
运行
复制
constructor(private globalDatServce:GlobalDataService) {
   this.globalDatServce.getNavigationbarState().subscribe((res) => {
     this.shownavigation = res;
   });
}

在模板中

代码语言:javascript
运行
复制
<div *ngIf="shownavigation">
  // navigation content goes here
</div>
票数 0
EN

Stack Overflow用户

发布于 2018-05-30 17:46:53

服务的“简化”版本是

代码语言:javascript
运行
复制
//in header
<div *ngIf="shownavigation">....</div>

constructor(private globalDataService:GlobalDataService){}
get shownavigationn()
{
   return this.globalDataService.shownavigation
}

代码语言:javascript
运行
复制
//In component
<button (click)="click()">Click me!</button>

constructor(private globalDataService:GlobalDataService){}
set shownavigationn(value)
{
   this.globalDataService.shownavigation=value
}
click()
{
    this.showNavigation=!this.showNavigation
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50599685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档