(angularJS)使ng-click打开ng-repeat上的链接

时间:2015-03-13 02:34:08

标签: javascript html angularjs angularjs-directive

Angular的新手,很抱歉,如果这已被某处覆盖,但我很难用简洁的术语解释我想要的内容。

目前我有一个ng-repeat从JSON对象中提取数据并制作一个列表。

<li ng-click="openLink()" ng-repeat="location in locations">
  {{location.name}}
</li>

每个对象都有一个名为&#34; link&#34;并且该密钥具有属性的URL。我希望函数openLink()打开与每个对象关联的链接。我不知道如何在控制器中解决这个问题。

我知道我能做到

<li ng-click="openLink()" ng-repeat="location in locations">
  <a ng-href="{{location.link}}">{{location.name}}</a>
</li>

但是我希望能够使用ng-click来保持index.html更清洁。那么我该在这里做些什么呢?

$scope.openLink = function() {

};

1 个答案:

答案 0 :(得分:1)

如果您要重定向到的网址是角度应用中的路由,则需要将$ location服务注入控制器,然后在您的函数中,在$ location上设置路径属性。

<li ng-click="openLink(location)" ng-repeat="location in locations">
  {{location.name}}
</li>


$scope.openLink = function(location){
    $location.path(location.link);
}

如果位置链接是完整的URL,则应将$ window服务注入控制器,并将openLink函数更改为设置$ window.location.href。

$scope.openLink = function(location){
    $window.location.href = location.link;
}