我的应用程序包含一个在对话框中打开图像的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应该是默认的动作,如果页面堆栈是空的(什么引发错误)我们将调用父处理程序(通常会让你脱离应用程序)