(angularJS) 让 ng-click 在 ng-repeat 上打开一个 link
(angularJS) make ng-click open a link on an ng-repeat
Angular 的新手,很抱歉,如果这已在某处涵盖,但我很难用简洁的术语准确解释我想要的内容。
目前我有一个 ng-repeat 从 JSON 对象中提取数据并制作一个列表。
<li ng-click="openLink()" ng-repeat="location in locations">
{{location.name}}
</li>
每个对象都有一个名为 "link" 的键,该键有一个 属性,即 url。我希望函数 openLink() 打开与每个对象关联的 link。我不确定如何在控制器中解决这个问题。
我知道我能做到
<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 服务注入控制器,然后在您的函数中设置路径属性 在 $location.
<li ng-click="openLink(location)" ng-repeat="location in locations">
{{location.name}}
</li>
$scope.openLink = function(location){
$location.path(location.link);
}
如果位置 link 是一个完整的 url,你应该将 $window 服务注入你的控制器,并更改 openLink 函数以设置 $window.location.href .
$scope.openLink = function(location){
$window.location.href = location.link;
}
Angular 的新手,很抱歉,如果这已在某处涵盖,但我很难用简洁的术语准确解释我想要的内容。
目前我有一个 ng-repeat 从 JSON 对象中提取数据并制作一个列表。
<li ng-click="openLink()" ng-repeat="location in locations">
{{location.name}}
</li>
每个对象都有一个名为 "link" 的键,该键有一个 属性,即 url。我希望函数 openLink() 打开与每个对象关联的 link。我不确定如何在控制器中解决这个问题。
我知道我能做到
<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 服务注入控制器,然后在您的函数中设置路径属性 在 $location.
<li ng-click="openLink(location)" ng-repeat="location in locations">
{{location.name}}
</li>
$scope.openLink = function(location){
$location.path(location.link);
}
如果位置 link 是一个完整的 url,你应该将 $window 服务注入你的控制器,并更改 openLink 函数以设置 $window.location.href .
$scope.openLink = function(location){
$window.location.href = location.link;
}