[英]Different back space handling in different controllers
该控制器用于page1.html
test1.controller('test1Controller', function($scope,$document) {
$document.on('keydown', function(e){
if(e.which === 8 && e.target.nodeName !== "INPUT" && e.target.nodeName !== "SELECT"){
confirm("you are In Home page");
}
});
}
该控制器用于page2.html
test2.controller('test2Controller', function($scope,$document) {
$document.on('keydown', function(e){
if(e.which === 8 && e.target.nodeName !== "INPUT" && e.target.nodeName !== "SELECT"){
//HERE CODE LOGIC SHOULD COME TO PREVIOUS PAGE
}
});
}
我在page1中输入数据并移至page2.html,然后单击键盘的退格键,尽管我位于第二页,但test1Controller中的函数正在被调用。
以上逻辑有什么问题。
使用上面的当前代码,两个不同控制器中的功能都被调用。
取消绑定所有keydown事件,然后通过执行以下操作将新事件绑定到控制器中
对于控制器一
test1.controller('test1Controller', function($scope,$document) {
$document.off('keydown')
$document.on('keydown', function(e){
if(e.which === 8 && e.target.nodeName !== "INPUT" && e.target.nodeName !== "SELECT"){
confirm("you are In Home page");
}
});
}
对于控制器二
test2.controller('test2Controller', function($scope,$document) {
$document.off('keydown')
$document.on('keydown', function(e){
if(e.which === 8 && e.target.nodeName !== "INPUT" && e.target.nodeName !== "SELECT"){
//HERE CODE LOGIC SHOULD COME TO PREVIOUS PAGE
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.