如何让href与ng-click中的函数结果一起使用?

时间:2016-10-27 03:00:57

标签: javascript html angularjs

如何将ng-click函数结果传递到href标记?例如,如果我有

<a href = "{{value}}" target = "_blank" ng-click="myFunction()">Click Here</a>

其中myFunction()每次点击它都会从我的服务器返回一个唯一的链接,我希望将其作为href传递到value标记,然后在新标签中打开此链接没有任何弹出窗口。

我不确定如何让href同时使用ng-click中同一标签中的功能。我已尝试$window.open()生成弹出窗口,因此我正在寻找替代解决方案。

我注意到使用hreftarget="_blank"会在新标签页中打开链接而不会导致弹出窗口,但我需要href使用myFunction()的返回值的方法ng-click

4 个答案:

答案 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.openhref的目标空白相同。

工作小提琴:http://jsfiddle.net/rohitjindal/vn0dpst0/