在我AngularJs和PhoneGap的/科尔多瓦应用程序,我听后退按钮事件。
document.addEventListener("deviceready", function(){
document.addEventListener('backbutton', function(){
$rootScope.$broadcast('backButton');
}, false);
}, false);
在某些观点我想听听这个,这样我可以告知,他们将退出应用程序的用户,并给他们的选项:然后我就app.js内广播这个特定的控制器继续与否。
所以有两个控件,大厅和游戏。
当用户单击回到了大厅,他们应该看到一个通知,告诉他们,他们将退出应用程序:
$rootScope.$on('backButton', function(event){
$window.navigator.notification.confirm(
'Are you sure you want to exit app?', // message
$scope.exitApp, // callback to invoke
'APP', // title
['OK', 'Cancel'] // button labels
);
如果他们点击确定他们是从应用程序注销并重新定向到登录屏幕。
当他们是他们应该被告知他们将放弃他们的游戏,然后重定向到大厅游戏显示:
$rootScope.$on('backButton', function(event){
$window.navigator.notification.confirm(
'Are you sure you want to quit your game?', // message
$scope.quitGame, // callback to invoke
'GAME', // title
['OK', 'Cancel'] // button labels
);
});
我看到的问题是,当我在比赛中我看到当我点击后退按钮时这两个通知。一个是正确的游戏,另一个是不需要的大厅。
所以这是不是一个真正的缺陷,这是应该如何工作,但作为相对较新的角度,我不知道最好的方法的广播似乎不妥这里。
嗨,是我用$ location.path()方法按你的建议。 两个控制器不需要同时加载。 – RyanP13
然后,您不应该要求执行任何检查。这可能是内存泄漏问题。 – Chandermani
不知道发生了什么,但我注意到板听众,检查后按钮事件侦听器只被绑定一次,但仍然我重复通知。所以如果我退出应用程序一次,会有两个通知,然后如果我再次退出,三个通知等。 这将指向事件监听器被重新绑定,但它显然不是! – RyanP13