window.open +在2个选项卡中打开内容

时间:2014-07-15 10:36:15

标签: javascript jquery angularjs

我在我的应用程序中使用了角度js和javascript。在这里,当我点击<a>标记时,它会调用角度控制器中的方法,该方法有$window.open();每次我点击内容打开2个标签。这是什么原因?请帮帮我。

HTML

 <li><a href="#" id="test_home" ng-click="test_home()">Test Click</a></li>

角度控制器

controllers.controller('LogoutCtrl', ['$scope', '$location','$cookieStore','$rootScope','$window',
    function($scope, $location,$cookieStore,$rootScope ,$window) {

        $scope.test_home = function () {
            $window.open('www.yahoo.com'); 
         };             
    }
    ]);

2 个答案:

答案 0 :(得分:0)

尝试使用preventDefault:

$scope.test_home = function (e) {
            e.preventDefault();
            $window.open('www.yahoo.com'); 
         }; 

或者,使用return false;

答案 1 :(得分:0)

$window.open没有任何共同之处,也许某些其他事件侦听器绑定到#test_home,或者某些浏览器插件负责它。

jsfiddle的简短示例显示该方法只会打开一个窗口/标签。

angular.module('windowOpen', []).controller('open', function ($scope, $window) {
    $scope.openMe = function () {
        $window.open('http://google.com/');
    };
});

jsfiddle:http://jsfiddle.net/krzysztof_safjanowski/AKB4c/