3 回答
TA贡献2021条经验 获得超8个赞
创建一个函数,例如 MouseHandlerEv,您可以在其中接收布尔值:
.HTML文件
<div (mouseover)="mouseEvHandler(true)" (mouseout)="mouseEvHandler(false)"></div>
.TS文件
mouseEvHandler(status){
status ? FunctionTrue() : FunctionFalse();
}
例子:
function mouseEvHandler(status){
status ? sayHi() : sayBye();
}
function sayHi() {
console.log('HI');
}
function sayBye() {
console.log('Bye');
}
<div onmouseover="mouseEvHandler(true)" onmouseout="mouseEvHandler(false)">MESSAGE ON CONSOLE</div>
将其外推到角度
TA贡献1812条经验 获得超5个赞
ngOnInit()目前,由于您正在检查钩子中的值,因此仅在组件开始时检查一次值。您可以改为尝试使用 RxJS 使其响应fromEvent并使用它来触发事件。
尝试以下
模板
<div #mouseControl></div>
import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';
@Component({ ... })
export class AppComponent implements AfterViewInit {
@ViewChild('mouseControl') mouseControl: ElementRef<any>;
ngAfterViewInit() {
fromEvent(this.mouseControl.nativeElement, 'mouseover').subscribe(
_ => otherFunc();
);
fromEvent(this.mouseControl.nativeElement, 'mouseout').subscribe(
_ => func();
);
}
}
TA贡献1998条经验 获得超6个赞
您可以像下面这样简单地使用它而无需为事件创建函数:
<div (mouseover)="mouseEv=true" (mouseout)="mouseEv=false"></div>
您还可以尝试将 true 和 false 作为方法参数直接传递给 mouseOver(true) 并在组件中接收其值。
添加回答
举报