【发布时间】:2017-05-25 09:04:24
【问题描述】:
我想在父组件 (toggleSidebar()) 中访问子组件的元素 (#sidenav)。我尝试应用此解决方案但没有成功:angular 2 / typescript:
get hold of an element in the template
我的孩子组件:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-sidebar',
template: `
<md-sidenav #sidenav mode="side" class="app-sidenav">
Sidenav
</md-sidenav>
`,
styleUrls: ['./sidebar.component.css']
})
export class SidebarComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
我的父组件:
import { SidebarComponent } from './sidebar/sidebar.component';
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<app-sidebar></app-sidebar>
<app-toolbar (toggleSidebar)="toggleSidebar()"></app-toolbar>
`,
styleUrls: ['./app.component.css']
})
export class AppComponent {
@ViewChild('sidenav') sidebar: SidebarComponent;
constructor() { }
toggleSidebar() {
this.sidebar.toggle();
}
}
【问题讨论】:
-
父组件中的sidenav是什么?
-
你试过
<app-sidebar #sidenav></app-sidebar>吗? -
@yurzui 是的,但它不起作用
-
也许它不起作用,因为您试图在
md-sidenav上调用方法?
标签: angular components