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

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

我想要的是发布要求并在单击“openTab”按钮时在新选项卡中打开响应 html。没有办法做到这一点$http。我认为这可能很简单,但我找不到方法。

4

4 回答 4

176

您可以在控制器中使用 $window 服务在此处完成所有这些操作。$window 是全局浏览器对象窗口的包装器。

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

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

这在重定向到动态路由时效果很好

于 2014-08-22T05:29:04.683 回答
21

I solved this question this way.

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

$scope.openTab = function() {
    $scope.url = 'www.google.com';
}
于 2013-11-08T04:29:00.293 回答
7

正确的 HTML 方式:只需用锚元素包围您的按钮并添加属性target="_blank"。它是如此简单:

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

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

$scope.yourDynamicURL = 'https://stackoverflow.com';
于 2018-08-30T23:22:48.527 回答
-1

您应该使用该$location服务

角度文档:

于 2013-09-23T15:46:16.157 回答