angular - @Output 不从父组件触发方法
问题描述
我已经为这个问题苦苦挣扎了几个小时,而且变得非常令人沮丧。我有一个子组件,我需要在其中检测鼠标何时悬停在某物上。mouseenter 事件正确触发,并且我在子组件(app-circle)中的方法被触发,但是在我发出()之后,父组件的方法不会被调用。
角度版本:8.0.1
以下是一些相关代码:
子组件(app-circle):
TS:
@Output() mouseEnter: EventEmitter<any> = new EventEmitter();
...
public onMouseEnter() {
this.mouseEnter.emit();
}
HTML:
<a (mouseenter)="onMouseEnter()"> ... </a>
父组件:
HTML:
<app-circle (mouseEnter)="onBackgroundCircleMouseEnter()"> </app-circle>
TS:
public onBackgroundCircleMouseEnter() {
console.log('emitted');
}
解决方案
正如评论中发现的那样,您的代码很好。但是你有两个彼此重叠的 div,并且 mouseenter 事件侦听器注册在后台一个,它被前台一个“隐藏”。所以它永远不会收到事件。如果您删除前(第二个)一个,那么它会按预期工作。
推荐阅读
- swift - 如何使用字节数组在 Swift 中初始化 struct 对象?
- typescript - 如何根据传递给剩余参数函数的参数数量指定不同的返回类型
- python - 何时使用 imputer1.fit(X.iloc[:, 0:3]) 与 imputer.fit(X[:, 1:3]) 0
- c - 为什么 malloc/calloc 无法为结构数组中的某些成员分配内存?
- python - Python PIP 安装缓存路径 [windows]
- php - 将选择放入变量中
- c++ - 为从函数返回的右值引用赋值
- php - 我收到一个致命错误:无法对表达式的结果使用 isset()(您可以改用“null !== expression”)
- python - 相加时NaN为0,除法时为NaN
- flutter - Flutter ScrollController 抛出异常