我遇到一个问题,即后退按钮不止一次运行。
目前我处于“消息”$状态,如果按下后退按钮,则以下代码正常工作。
var messageIsClosed = true;
$ionicPlatform.onHardwareBackButton(function(event){
event.stopPropagation();
handleBackButton();
})
var handleBackButton = function(){
if(messageIsClosed){
$state.go("dash");
} else {
messageIsClosed = false;
}
}
但是,如果我转到另一个$状态(比如说“破折号”)然后返回“消息”,按下后退按钮将使上面的代码运行两次。然后,如果我再次回到“消息”,它会运行3次,然后是4.每次我访问“消息”视图/控制器时,后退按钮代码将运行一个额外的时间
我不知道为什么
答案 0 :(得分:0)
onHardwareBackButton
将多次运行,这在您的情况下是正常的。这是因为您每次访问消息状态时都要注册该事件。
为避免多次注册事件,您可以使用offHardwareBackButton()
并在离开当前状态时取消注册事件。
示例代码:
这是回调
var hardwareBackButtonHandler = function() {
// add you back button logic here
console.log('Hardware back button pressed');
}
注册后退按钮事件:
$ionicPlatform.onHardwareBackButton(hardwareBackButtonHandler);
然后当离开当前状态时,您可以取消注册:
$ionicPlatform.offHardwareBackButton(hardwareBackButtonHandler);