刚接触 Angular,很抱歉,如果这已在某处被提及,但我很难用简洁的术语准确地解释我想要什么。
目前,我有一个 ng-repeat 从 JSON 对象中提取数据并制作列表。
<li ng-click="openLink()" ng-repeat="location in locations">
{{location.name}}
</li>
每个对象都有一个名为“link”的键,并且该键有一个 url 属性。我希望函数 openLink() 打开与每个对象关联的链接。我不知道如何在 Controller 中解决这个问题。
我知道我能做到
<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() {
};
最佳答案
如果您要重定向到的 url 是 Angular 应用程序中的路由,则需要将 $location 服务注入(inject)到 Controller 中,然后在您的函数中设置 $location 的路径属性。
<li ng-click="openLink(location)" ng-repeat="location in locations">
{{location.name}}
</li>
$scope.openLink = function(location){
$location.path(location.link);
}
如果位置链接是一个完整的url,您应该将$window服务注入(inject)到您的 Controller 中,并更改openLink函数以设置$window.location.href。
$scope.openLink = function(location){
$window.location.href = location.link;
}
关于javascript - (angularJS) 让 ng-click 在 ng-repeat 上打开链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023950/