按住Ctrl键单击新标签页中的打开页面

时间:2014-05-29 07:34:59

标签: angularjs angularjs-ng-click

基本上我希望我的应用程序在用户按下Ctrl(在Linux窗口上),Cmd(在OSX上)时在新选项卡/页面中打开链接。什么是路要走。

注意:我无法摆脱ng-click。应用程序在范围内使用它进行各种方法调用。

3 个答案:

答案 0 :(得分:8)

试试这个:

在HTML中,

<div ng-click="gotoPageOrFunc($event)"></div>

在JS中,

$scope.gotoPageOrFunc = function(event){
    if (event.ctrlKey==1){
        // Use windows.location or your link.
    }else{
        // Your actual functionalities.
    }
}

答案 1 :(得分:0)

使用指令。

angular.module('myapp').directive('newtab', function() {
    return {
        restrict: 'AC',
        link: function($scope, $elem) {
            var target = $elem.attr('target');

            $elem.on('click', function(e) {
                target = $elem.attr('target');
                $elem.attr('target', '_blank');
            });

            $elem.on('blur', function() {
                $elem.attr('target', target);
            });
        }
    };
});

// UPD

使用

<a href="/my/page?foo=bar" class="newtab">xoxo<a/>
or
<a href="/my/page?foo=bar" newtab>xoxo</a>
or
<a href="/my/page?foo=bar" data-newtab>xoxo</a>

// UPD 2

<a href="/my/page?foo=bar" 
   data-ng-click="myControllerMethod()" class="newtab">xoxo<a/>
or
<a href="/my/page?foo=bar" 
   data-ng-click="myControllerMethod()" newtab>xoxo</a>
or
<a href="/my/page?foo=bar" 
   data-ng-click="myControllerMethod()" data-newtab>xoxo</a>

答案 2 :(得分:0)

这可能对您有帮助

HTML

<a ng-click="getPreviousURL()" href="https://www.google.com/unlimited-plan/">More.../a>

JS

$scope.getPreviousURL = function(moreurl,category,returnurl) {
var revrl=category+'bundles';
$window.localStorage.setItem('prev_url',revrl);
**var target = $elem.attr('href');**
**window.location = target;**
};