angular - 如何将方法绑定到组件 Angular?
问题描述
我在模板中使用子组件:
<slide-panel
(swipeleft)="onSwipeLeft($event)"
(swiperight)="onSwipeRight($event)"
[activePane]="isLeftVisible ? 'left' : 'right'">
</slide-panel>
如您所见,我使用输入并从父组件activePane
传递内部变量。isLeftVisible
此变量通过以下方式更改:
public onSwipeLeft(event: any) {
this.isLeftVisible = true;
}
public onSwipeRight(event: any) {
this.isLeftVisible = false;
}
我想让这个组件隔离,并将所有功能 onSwipeLeft、onSwipeRight 移到里面。
现在子组件依赖于父变量isLeftVisible
。
所以,在我使用这个组件的任何地方,我都应该创建isLeftVisible
.
我可以绑定但在组件内(swipeleft)="onSwipeLeft($event)"
移动处理程序吗?onSwipeLeft
解决方案
您可以使用[EventEmitter][1]
您可以在孩子中执行此操作:
@Output() open: EventEmitter<any> = new EventEmitter();
//in the method that creates the events you do
this.open.emit(//your parameters);
在你父亲身上,你做到了
<.... (open)="handleopenEvent(e)" ....>
在父亲 .ts 你做:
public handleopenEvent(any:e){}
推荐阅读
- azure - 要列入白名单的 Azure 容器注册表 IP 范围是多少?
- node.js - 无法操纵 mongoose 查询结果 - 承诺未定义
- python - Astropy:将 Alt 和 Az 添加到坐标对象 (Skycoord)
- ios - 如何让 AudioKit AKPluckedString 优雅地淡出?
- sql - 在滚动时间范围内按 ID 区分计数日期
- php - 变量永远不会从 FETCH API 到达 PHP
- java - NoSuchFieldError:DEFAULT_INCOMPATIBLE_IMPROVEMENTS
- c - 程序似乎跳过了 getchar()
- gmail - 使用隐藏图像在 Gmail 中进行电子邮件打开/点击跟踪
- java - 降低 minSdkVersion