在AngularJS上点击button,打开一个新标签

<button type="button" class="btn btn-primary" ng-click="openTab()">new tab</button> openTab = function () { $http.post('www.google.com'); } 

我想要的是发布一个要求,并在点击“openTab”button时在新标签页中打开响应html。 没有办法做到这一点与$http 。 我想这可能很简单,但我找不到方法。

你可以在你的控制器中通过使用$ window服务来完成这一切。 $ window是全局浏览器对象窗口的一个包装。

为了使这个工作注入$窗口到你的控制器如下

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

这在redirect到dynamic路由时效果很好

我这样解决了这个问题。

 <a class="btn btn-primary" target="_blank" ng-href="{{url}}" ng-mousedown="openTab()">newTab</a> $scope.openTab = function() { $scope.url = 'www.google.com'; } 

您应该使用$location服务

Angular文档:

  • 指南使用$位置
  • $ location API