在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
- AngularJS – 模型不会更新由ng-repeat生成的单选button
- 如何使用HTML内容创buildAngularJS UI引导popup窗口?
- 如何等待,直到响应来自$ http请求,在angularjs?
- AngularJS orderBy不能在ngOptions中跟踪?
- AngularJS:select不是双向绑定到模型
- 在angular度js嵌套ng视图
- 如何在AngularJs中使用私有方法编写可testing的控制器?
- Angular-animate – 未知的提供者:$$ asyncCallbackProvider < – $$ asyncCallback < – $ animate < – $ compile
- 为什么这个简单的AngularJS ng-show不工作?