繁体   English   中英

不同控制器中不同的退格处理

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM