Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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 从事件处理程序更改globale变量时出现问题_Javascript_Html_Angular_Ionic Framework_Ionic4 - Fatal编程技术网

Javascript 从事件处理程序更改globale变量时出现问题

Javascript 从事件处理程序更改globale变量时出现问题,javascript,html,angular,ionic-framework,ionic4,Javascript,Html,Angular,Ionic Framework,Ionic4,我正在ionic4中构建一个简单的应用程序,它有一个按钮。按下按钮时,应显示加速计α值。我的问题是,事件列表器调用的eventhandler不会更改globale变量(我认为) 显示传感器数据 传感器数据为{{sensordata}} 我猜“这”可能不是你想象的那样。你试过改变功能吗 clicked() { window.addEventListener("deviceorientation", this.handleOrientation, true); } 到 我认为,描述导致您得出全局

我正在ionic4中构建一个简单的应用程序,它有一个按钮。按下按钮时,应显示加速计α值。我的问题是,事件列表器调用的eventhandler不会更改globale变量(我认为)

显示传感器数据
传感器数据为{{sensordata}}
我猜“这”可能不是你想象的那样。你试过改变功能吗

clicked() {
 window.addEventListener("deviceorientation", this.handleOrientation, true);
}


我认为,描述导致您得出全局变量未更改的结论的调试步骤会很有帮助。如果您可以将
handleOrientation
附加到
(单击)
event?,本质上是
(单击)=“handleOrientation($event)”,为什么还要添加事件侦听器
事件侦听器中的此
是对事件附加到的html按钮的引用,而不是组件类,当元素可以访问组件类中指定的任何函数时,您无需附加事件侦听器。@Bargros它需要持续更新值每当您单击按钮
handleOrientation
时,将触发并更新值,所以我不明白你所说的持续更新值是什么意思?。您还意识到,
clicked
只会一次又一次地创建事件侦听器,它的功能不是更新值,而只是不断地重新连接事件侦听器。
clicked()
clicked=()=>
是同一回事,但声明方式不同。否。区别在于“this”指针,它在这两种情况下有所不同。我看不出两者之间有任何区别,但我已经说明了当您了解javascript时的一些内容。看看这个例子,仔细研究一下,看看函数的声明方式是非常重要的:我也不明白为什么你会对这个感到困惑。你写的东西和对原始问题的评论完全一样。。。您还指出“this”指针可能有问题。
clicked() {
 window.addEventListener("deviceorientation", this.handleOrientation, true);
}
clicked = () => {
 window.addEventListener("deviceorientation", this.handleOrientation, true);
}