Angularjs很新。所以我有一些JSON文件,我正在阅读我的网页,其中包含汽车对象和数组。我要做的是按下“按钮”,提醒我注意该按钮的特定数据。
ng-repeat正在运行8次,这是数组的长度,但是在angularJs中我不知道如何在每次ng-repeat在我的按钮功能中传递时基本存储数组索引。
这是我的.html的片段:
<div class="carTable table-responsive text-center" ng-controller="ButtonController" >
<table class="table specTable">
<thead>
<tr>
<th>Make</th>
<th>Model</th>
<th>Year</th>
<th>Color</th>
<th>Milage</th>
<th>Doors</th>
<th class="reserve">Horsepower</th>
<th>Price</th>
<th class="reserve"></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="cars in car | orderBy:'year'">
<td>{{cars.year}}</td>
<td>{{cars.model}}</td>
<td>{{cars.make}}</td>
<td>{{cars.color}}</td>
<td>{{cars.mileage | number}}</td>
<td>{{cars.doors}}</td>
<td>{{cars.horsepower}}</td>
<td>{{cars.price | number}}</td>
<td><div class="panel panel-default"><a href="" ng-click="buttonPress()">Reserve</a></div></td>
</tr>
</tbody>
</table>
</div>
有问题的部分位于底部,我有一个预约“按钮”
我遗漏了我的JSON文件,在那里正常工作。我只是不确定如何跟踪数组索引,因为ng-repeat做了它的事情。
这是角度:
(function(){
var app = angular.module("myReserveApp", []);
app.controller("ButtonController", ["$scope", "$window", function($scope, $window){
$scope.buttonPress = function(){
$window.alert(JSON.stringify($scope.car[0]));
}
}]);
var MainController = function($scope, $http, $window){
var onGatherBoatData = function(response){
$scope.boat = response.data;
};
var onError = function(reason){
$scope.error = "Could not fetch Boat Data";
};
var onGatherCarData = function(response){
$scope.car = response.data;
};
var onError = function(reason){
$scope.error = "Could not fetch Car Data";
};
var onGatherTruckData = function(response){
$scope.truck = response.data;
};
var onError = function(reason){
$scope.error = "Could not fetch Truck Data";
};
$scope.message = "Hello, Angular Here!";
};
app.controller("MainController", ["$scope", "$http", "$window", MainController]);
}());
目前在代码的顶部我只是告诉对象[0],但我希望它特定于按下哪个按钮。感谢任何帮助,谢谢。
答案 0 :(得分:2)
$index
指的是ng-repeat中的索引。因此,如果您想在按钮上点击数组中的索引,请将buttonPress()
更改为buttonPress($index)
您必须将控制器更改为以下内容:
$scope.buttonPress = function(index){
$window.alert(JSON.stringify($scope.car[index]));
}
答案 1 :(得分:1)
要执行以下操作,您只需传递Declare @UserId nVarchar(255)='3847609f-6fd1-4a14-9675-000d74a5df80'
中的当前数据即可。此外,如果您想要当前索引,ngRepeat
指令提供特殊属性,作为ngRepeat
,它是一个迭代器。
$index
然后你可以这样调用你的函数:
$scope.buttonPress = function(car, index){
//Retrieve current data of the ngRepeat loop
console.log(car);
//Current index of your data into the array
console.log(index);
}
答案 2 :(得分:0)
首先,谢谢你们的快速反应。这两个答案都有效。在阅读你的帖子之前,我找到了另一种方法。
<div class="panel panel-default">
<a href="" ng-click="buttonPress(car.indexOf(cars))">Reserve:{{car.indexOf(cars)}}</a>
</div>
使用(car.indexOf(cars))给我相同的结果
$scope.buttonPress = function(index){
$window.alert(JSON.stringify(index));
}
现在,当我点击“按钮”时,它会将数组索引发回给我,所以现在我应该可以使用该数据了。再次感谢你们的帮助。