2017-01-05 3 views
2

Я использую компонент MdSidenav из угловых-Материал2 библиотеки, и я хочу, чтобы открыть MdSidenav из другого компонента. Поэтому я хотел бы использовать функции локальной переменной #sidenav (то есть в родительском компоненте) из другого компонента (это дочерние элементы).Как открыть MdSidenav из детского компонента?

Родитель компонент: SRC/приложение/app.component.html

<md-sidenav-container> 
<md-sidenav #sidenav> 
    <h1>Hello</h1> 
</md-sidenav> 

<div class="my-content"> 
    <router-outlet></router-outlet> 
</div> 
</md-sidenav-container> 

Детский компонент: SRC/приложение/меню/menu.component.html

<div class="menu"> 
<button (click)="sidenav.open()"></button> 
</div> 
+0

Является ли ребенок компонент на выходе маршрутизатора? –

+0

Да, это так. Полагаю, мне нужно использовать право на обслуживание? –

+1

Yup. В этом случае вам нужна услуга. –

ответ

-1

У меня была такая же ситуация. Вы можете сделать это:

<md-sidenav-container> 
    <md-sidenav #sidenav> 
    <h1>Hello</h1> 
    </md-sidenav> 

    <menu [nav]="sidenav"></menu> 
</md-sidenav-container> 

, а затем в меню компонента:

@Input() nav; 

openSideNav(){ 
    this.nav.open(); 
}