如何将ng-click
函数结果传递到href
标记?例如,如果我有
<a href = "{{value}}" target = "_blank" ng-click="myFunction()">Click Here</a>
其中myFunction()
每次点击它都会从我的服务器返回一个唯一的链接,我希望将其作为href
传递到value
标记,然后在新标签中打开此链接没有任何弹出窗口。
我不确定如何让href
同时使用ng-click
中同一标签中的功能。我已尝试$window.open()
生成弹出窗口,因此我正在寻找替代解决方案。
我注意到使用href
和target="_blank"
会在新标签页中打开链接而不会导致弹出窗口,但我需要href
使用myFunction()
的返回值的方法ng-click
。
答案 0 :(得分:1)
您可以执行此操作,它将在新标签页中打开
controller('exampleCtrl', ['$scope', '$window',
function($scope, $window) {
$scope.myFunction = function(link){
$window.open(link, '_blank');
};
}
]);
您可以像这样直接绑定网址
<a ng-href="{{myFunction()}}" target="_blank" >Click Here</a>
答案 1 :(得分:0)
使用
<a ng-href="{{myFunction()}}" target="_blank">Click Here</a>
它将调用该方法并在新窗口中打开URL
答案 2 :(得分:0)
使用ng-click
调用您的函数,使用$window
打开新标签中的链接。查看 working fiddle 。
<强>控制器:强>
// App declaration
var MyApp = angular.module("MyApp", []);
// App controller
MyApp.controller("TestController", ["$scope", "$window", function($scope, $window) {
var sampleLinks = [
"http://www.google.com",
"http://www.facebook.com",
"http://www.twitter.com",
"http://www.instagram.com",
"http://www.gmail.com"
]
$scope.myFunction = function() {
var randomIndex = Math.floor(Math.random()*sampleLinks.length);
$window.open(sampleLinks[randomIndex], '_blank');
};
}]);
<强>模板:强>
<div ng-app="MyApp" ng-controller="TestController">
<a href="" ng-click="myFunction();">Click here</a> to open random link in a new tab!
</div>
答案 3 :(得分:0)
试试这个会起作用:
Html:
<div ng-controller="MyCtrl">
<a ng-click="openLink('http://www.example.com')">Open Link in a new Tab</a>
</div>
JS:
myApp.controller('MyCtrl', ['$scope', '$window',function($scope, $window) {
$scope.openLink = function(link) {
$window.open(link, '_blank');
};
}
]);
此处,$window.open
与href
的目标空白相同。