gpt4 book ai didi

javascript - 使用 AngularJS 在新窗口中打开链接

转载 作者:IT王子 更新时间:2023-10-29 02:51:05 26 4
gpt4 key购买 nike

有没有办法告诉 AngularJS 我希望在用户点击链接时在新窗口中打开链接?

使用 jQuery 我会这样做:

jQuery("a.openInNewWindow").click( function() {
window.open(this.href);
return false;
})

有 AngularJS 的等价物吗?

最佳答案

这是一个将添加 target="_blank" 的指令所有 <a>带有 href 的标签属性。这意味着它们都将在新窗口中打开。请记住,指令在 Angular 中用于任何 dom 操作/行为。 <强> Live demo (click).

app.directive('href', function() {
return {
compile: function(element) {
element.attr('target', '_blank');
}
};
});

这是相同的概念,但侵入性更小(因此不会影响所有链接)并且适应性更强。您可以在父元素上使用它来影响所有子链接。 <强> Live demo (click).

app.directive('targetBlank', function() {
return {
compile: function(element) {
var elems = (element.prop("tagName") === 'A') ? element : element.find('a');
elems.attr("target", "_blank");
}
};
});

旧答案

您似乎只需要使用 "target="_blank"在你的 <a>标签。这里有两种方法:

<a href="//facebook.com" target="_blank">Facebook</a>
<button ng-click="foo()">Facebook</button>

JavaScript:

var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope, $window) {
$scope.foo = function() {
$window.open('//facebook.com');
};
});

Live demo here (click).

这是 $window 的文档: http://docs.angularjs.org/api/ng.$window

你可以只使用 window , 但最好使用依赖注入(inject),传入angular的$window用于测试目的。

关于javascript - 使用 AngularJS 在新窗口中打开链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20099784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com