Вызовите компонент sidenav из компонента панели инструментов в angular-material2

Как вызвать левый sidenav из компонента панели инструментов заголовка?

заголовочные-toolbar.component.ts

import {Component, ViewChild} from "@angular/core";

@Component({
    selector: 'header-toolbar',
    templateUrl: './app/header-toolbar/header-toolbar.component.html',
})

export class HeaderToolbarComponent{ }

Заголовок-toolbar.component.html

<md-sidenav-layout>
    <left-sidenav #s [sidenavFromLeftSideComponent]="s"></left-sidenav>
    <md-sidenav-layout>
        <md-toolbar color="primary">
            <button md-icon-button (click)="s.toggle()">
                <i class="material-icons">menu</i>
            </button>
            &nbsp;
            <span>Project name</span>
        </md-toolbar>
    </md-sidenav-layout>
</md-sidenav-layout>

левые sidenav.component.ts

import {Component, Input} from "@angular/core";

@Component({
    selector: 'left-sidenav',
    templateUrl: './app/left-sidenav/left-sidenav.component.html'
})

export class LeftSidenavComponent{
    @Input() sidenavFromLeftSideComponent: any;
}

левый sidenav.component.html

<md-sidenav #sidenav>
    <button md-button (click)="sidenav.close()">Close</button>
</md-sidenav>

Благодарю.

PS Я новичок в угловой.

1 ответ

Пример макета для вас, вы можете использовать переменную шаблона объединить с Input сделать это.

app.component.html

<md-sidenav-layout>
  <header-bar [leftnav]=left [rightnav]=right></header-bar>

  <breadcrumbs></breadcrumbs>

  <md-sidenav #left mode="over">
    <left-side-nav [leftnav]=left></left-side-nav>
  </md-sidenav>

  <md-sidenav #right align="end" mode="side">
    <right-side-nav [rightnav]=right></right-side-nav>
  </md-sidenav>  

  <router-outlet></router-outlet>

</md-sidenav-layout>
<footer-bar></footer-bar>

header.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'header-bar',
  styleUrls: ['header.component.css'],
  templateUrl: 'header.component.html'
})

export class HeaderComponent {
    @Input() leftnav;
    @Input() rightnav;
}

header.component.html

<md-toolbar>
    <button md-icon-button (click)="leftnav.toggle()"> 
      <md-icon>menu</md-icon>
    </button>
</md-toolbar>

теперь вы можете нажать menu Кнопка в заголовке, чтобы переключить Sidenav.

Другие вопросы по тегам