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() {
};
答案 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;
}