Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mouseover/mouseout上更新布尔值_Javascript_Angular - Fatal编程技术网

Javascript 在mouseover/mouseout上更新布尔值

Javascript 在mouseover/mouseout上更新布尔值,javascript,angular,Javascript,Angular,我试图在mouseover/mouseout时更新布尔值(它应该动态更改),以便稍后与if-else语句一起使用,并根据true/false分配一些函数。但它只显示false,从不显示true。有人能帮我吗 ts: mouseEv:boolean; 鼠尾(e){ this.mouseEv=false; } 鼠标盖(e){ this.mouseEv=true; } ngOnInit():void{ 如果(this.mouseEv==false){func();} else如果(this.mous

我试图在mouseover/mouseout时更新布尔值(它应该动态更改),以便稍后与if-else语句一起使用,并根据true/false分配一些函数。但它只显示
false
,从不显示
true
。有人能帮我吗

ts:

mouseEv:boolean;
鼠尾(e){
this.mouseEv=false;
}
鼠标盖(e){
this.mouseEv=true;
} 
ngOnInit():void{
如果(this.mouseEv==false){func();}
else如果(this.mouseEv==true){otherFunc();};
}
html:


编辑:
我需要动态更改布尔值,因为我会将它与包含函数的对象一起使用,并且我无法从另一个函数调用它们。

您可以像下面那样使用它,而无需为事件创建函数:

<div (mouseover)="mouseEv=true" (mouseout)="mouseEv=false"></div>


您还可以尝试直接将true和false作为mouseOver(true)中的方法参数传递,并在component中接收其值。

创建一个函数,例如MouseHandlerEv,在其中接收布尔值:

.HTML文件

<div (mouseover)="mouseEvHandler(true)" (mouseout)="mouseEvHandler(false)"></div>
mouseEvHandler(status){
   status ? FunctionTrue() : FunctionFalse();
}
例如:

功能鼠标手柄(状态){
状态?sayHi():sayBye();
}
函数sayHi(){
console.log('HI');
}
函数sayBye(){
console.log('Bye');
}

控制台上的
消息
目前,由于您正在检查
ngOnInit()
hook中的值,因此仅在组件开头检查一次值。相反,您可以尝试使用RxJS
fromEvent
使其成为反应式的,并使用它来触发事件

试试下面的方法

模板


从'@angular/core'导入{Component,ViewChild,ElementRef,AfterViewInit};
@组件({…})
导出类AppComponent实现AfterViewInit{
@ViewChild('mouseControl')mouseControl:ElementRef;
ngAfterViewInit(){
fromEvent(this.mouseControl.nativeElement,'mouseover')。订阅(
_=>otherFunc();
);
fromEvent(this.mouseControl.nativeElement,'mouseout')。订阅(
_=>func();
);
}
}

这是否回答了您的问题?您正在仅检查
ngOnInit
上的
mouseEv
值,该值将仅执行一次。@Karan我如何更改它,使其执行多次?它根本不会更改该值