Angular 2材质:来自组件的侧导航切换
Angular 2 material : sidenav toggle from component
我在我的项目中使用Angular 2 Material sidenav的方式是:
<md-sidenav-layout>
<md-sidenav #start mode="side" [opened]="true">
<md-nav-list>
</md-nav-list>
</md-sidenav>
<button md-button (click)="start.toggle()">Close</button>
<router-outlet></router-outlet>
</md-sidenav-layout>
如何从我的组件调用start.toggle()
,而不是用点击事件调用元素?
感谢您阅读
您希望在控制器中声明一个引用组件内MdSidenav
的ViewChild
,如下所示:
// Sidemenu
@ViewChild('start') sidenav: MdSidenav;
其中start
是要引用的组件的名称,在本例中为sidenav。
接下来,您可以在sidenav上调用方法,比如控制器函数中的this.sidenav.toggle()
。
https://angular.io/docs/ts/latest/cookbook/component-communication.html##查看子的父级
将对象传递给函数。
<md-sidenav-layout>
<md-sidenav #start mode="side" [opened]="true">
<md-nav-list>
</md-nav-list>
</md-sidenav>
<button md-button (click)="randomName(start)">Close</button>
<router-outlet></router-outlet>
</md-sidenav-layout>
import {Component} from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html'
})
export class AppComponent {
constructor() {
}
randomName(start: any) {
start.toggle();
}
}
最简单的方法是将抽屉传递给触发切换的组件。
Html:
<mat-drawer #drawer mode="side">
....
</mat-drawer>
<another-component [drawerRef]="drawer"><another-component/>
另一个组件TS:
export class AnotherComponent implements OnInit {
@Input() drawerRef: MatDrawer;
...
}
另一个组件HTML:
<button (click)="this.drawerRef.toggle()">
其中另一个组件是控制切换动作的组件。
<md-sidenav #sidenav class="example-sidenav" opened="false">
<div class="example-sidenav-content">
<button type="button" md-button (click)="toogleNav(sidenav)">
toogle
</button>
</div>
</md-sidenav>
在你的ts:
export class AppComponent {
toogleNav(nav: any) {
if (nav.opened) {
nav.close()
} else {
nav.open();
}
}
}
相关文章:
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- React组件等待所需道具进行渲染
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- angular 1.5应用程序中的导航栏
- 如何创建带有插槽的vue js组件预加载程序
- 无法从jquery Mobile导航栏重定向到另一个页面
- KnockoutJS-组件-多个实例
- 如何更改reactjs中外部/独立组件的状态或属性
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 导航到特定事件的另一个变量页面
- 宽度减小时调整React导航栏组件的大小
- 如何在 React 的 render() 中导航 react-router-1.0.3 中的组件之外
- 在React中导航离开组件时中止请求
- Angular 2材质:来自组件的侧导航切换
- 组件导航到时如何触发事件
- 如何在Aurelia入门应用程序(导航应用程序)中使用JQuery UI组件
- React是在包含相同组件的路由之间导航时处理获取的最佳方式
- 登录后重新加载导航组件重定向到另一个组件 Angular 2