0

私はこの問題に数時間苦労しており、かなりイライラしています。マウスが何かの上に置かれたことを検出する必要がある子コンポーネントがあります。mouseenter イベントが正しく発生し、子コンポーネント (app-circle) 内のメソッドが起動されますが、emit() の後、親コンポーネントのメソッドが呼び出されません。

角度バージョン: 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');
}
4

3 に答える 3

3

コメントで発見されたように、あなたのコードは問題ありません。しかし、お互いの上に2つのdivがあり、mouseenterイベントリスナーはバックグラウンドのものに登録されており、フォアグラウンドのものによって「隠されています」。したがって、イベントを受け取ることはありません。前景 (2 番目) のものを削除すると、期待どおりに動作します。

于 2019-06-23T08:56:36.963 に答える