2016-11-28 5 views
1

ヘッダーツールバーコンポーネントからleft sidenavを呼び出す方法はありますか?angle-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> 

感謝。

P.S.私は新しい角度です。

答えて

2

あなたのレイアウト例では、テンプレート変数combineを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; 
} 

あなたがトグルするヘッダーにmenuボタンをクリックしてください可能性があり、今

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

header.component.html sidenav。

関連する問題