当路由器在Angular2中导航时,需要更新Header的内容

时间:2016-07-21 13:15:10

标签: angular angular2-routing

我有一个包含一些内容的HeaderComponent 在路线的基础上,我需要[ngSwitch]一些内容 在家里我想显示一个链接但不是主页,我想在标题上显示更多链接。 如何更新或订阅路由器 我已经完成this._router.subscribe((res) => console.log(res));但无法获取路线信息......

1 个答案:

答案 0 :(得分:0)

您可以提供切换标头状态的服务,并像我一样订阅其更改:

<pre><code>
export class HeaderService {
    getOptions () {
        return headerOptions;
    }
    setHeaderOptions(options: any) {
        headerOptions.next({
            showLogo: options.showLogo,
            showLabel: options.showLabel,
            label: options.label,
            showAuthBtn: options.showAuthBtn,
            showCloseBtn: options.showCloseBtn,
            showMenuBtn: options.showMenuBtn,
            showByTagsBtn: options.showByTagsBtn,
            ....
        });
    }
}
</code></pre>

并且每个@Component构造函数都将设置选项:

<pre><code>
headerService.setHeaderOptions({showHeader: true,
            showLogo: true,
            showLabel: false,
            showAuthBtn: true,
            showCloseBtn: false,
            showMenuBtn: true,
            showByTagsBtn: false})
</code></pre>

并且您的HeaderComponent应订阅此更改

<pre><code>
checkOptions() {
    this.hederService.getOptions().subscribe((headerOptions: HeaderOptions) => {
      this.options = headerOptions;
      this.checkAuthorization();
    });
  }
</code></pre>