在AngularJS中单击按钮时打开一个新选项卡

时间:2013-07-20 01:43:54

标签: javascript angularjs

<button type="button" class="btn btn-primary" ng-click="openTab()">new tab</button>

openTab = function () {
  $http.post('www.google.com');
}

我想要的是发布一个require并在单击“openTab”按钮时在新选项卡中打开响应html。没有方法可以使用$http执行此操作。 我认为这可能很简单,但我找不到办法。

4 个答案:

答案 0 :(得分:170)

您可以使用$ window service here在控制器中完成所有操作。 $ window是全局浏览器对象窗口的包装器。

为了使这项工作将$ window注入你的控制器,如下所示

.controller('exampleCtrl', ['$scope', '$window',
    function($scope, $window) {
        $scope.redirectToGoogle = function(){
            $window.open('https://www.google.com', '_blank');
        };
    }
]);

在重定向到动态路由

时效果很好

答案 1 :(得分:18)

我用这种方式解决了这个问题。

<a class="btn btn-primary" target="_blank" ng-href="{{url}}" ng-mousedown="openTab()">newTab</a>

$scope.openTab = function() {
    $scope.url = 'www.google.com';
}

答案 2 :(得分:4)

正确的HTML方式: 只需用锚元素包围按钮并添加属性 target =“ _ blank” 。就这么简单:

<a ng-href="{{yourDynamicURL}}" target="_blank">
    <h1>Open me in new Tab</h1>
</a>

您可以在控制器中进行设置的位置:

$scope.yourDynamicURL = 'https://stackoverflow.com';

答案 3 :(得分:-1)

您应该使用$location服务

Angular docs: