【发布时间】:2019-04-27 12:07:32
【问题描述】:
我正在 ionic4 中构建一个带有按钮的简单应用程序。按下按钮时,应显示加速度计 alpha 值。我的问题是事件侦听器调用的事件处理程序不会更改全局变量(我认为)
public sensordata: any;
handleOrientation(event) {
this.sensordata = event.alpha;
}
clicked() {
window.addEventListener("deviceorientation", this.handleOrientation, true);
}
<ion-button id="btn" (click)="clicked()" expand="block">Show sensor data</ion-button>
<ion-text>The sensor data is {{sensordata}}</ion-text>
【问题讨论】:
-
我认为描述您的调试步骤会有所帮助,这些步骤会导致您得出全局变量未更改的结论。
-
当您可以将
handleOrientation附加到您的(click)事件时,为什么还要添加事件侦听器?本质上是(click)="handleOrientation($event)" -
另外,事件监听器中的
this是对事件附加到的html按钮的引用,而不是组件类,当元素可以访问时,您无需附加事件监听器组件类中指定的任何函数。 -
@Bargros 它想要不断更新价值
-
每当你点击按钮
handleOrientation都会被触发并更新值,所以我不明白你所说的不断更新值是什么意思?你也意识到clicked只是一次又一次地创建事件监听器,它的功能不是更新值,而是简单地重新连接事件监听器。
标签: javascript html angular ionic-framework ionic4