我的应用程序包含一个在对话框中打开图像的imageclick上的ons对话框.但是我无法处理硬件设备返回按钮.显示“捕获后退”按钮处理程序失败的错误.所以请帮助. 代码: ons-template id="Ima
代码:
<ons-template id="ImagePopup.html">
<ons-dialog style="height:100%;width:100%;background:#000000;" var="naviDialog" cancelable ng-device-backbutton="click();" animation="fade" true>
<img id="PopImg" style="height:50%;width:100%;padding-top:30%">
</ons-dialog>
</ons-template>
当在ons-navigator对象中使用dialog组件时,我遇到同样的问题.为了使其工作,我不得不禁用该对话框的默认后退按钮处理程序,并使导航器对象处理它.
这是我做的代码,希望它有帮助:
ons.createDialog('dialogs/yourDialog.html').then(function(dialog) {
dialog.getDeviceBackButtonHandler().disable();
var f = function(event) {
dialog.hide();
myNavigator.getDeviceBackButtonHandler().setListener(function(event) {
try{
myNavigator.popPage();
}
catch (err){
event.callParentHandler();
}
});
}
myNavigator.getDeviceBackButtonHandler().setListener(f);
dialog.show({parentScope: $scope});
});
简要说明:
>禁用对话框返回按钮处理程序(这是导致错误的原因)>禁用时,后退按钮将由具有后退按钮处理程序(在这种情况下为myNavigator)的下一个节点处理,该节点工作正常.>在显示对话框时更改myNavigator的事件侦听器,以隐藏对话框.>隐藏它后,我尝试恢复其默认功能.它是Navigator对象,所以popPage应该是默认的动作,如果页面堆栈是空的(什么引发错误)我们将调用父处理程序(通常会让你脱离应用程序)
