点击列表中的某个项目后,ng-click
会在发送项目的id
时触发,其目的是让项目的description
与{id
匹配1}}但似乎只是取而代之的是项目的index
。
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $http) {
$scope.name = 'World';
$http.get('tasks.json').success(function(data) {
$scope.tasks = data.item;
console.log($scope.tasks);
});
$scope.viewTask = function(id) {
console.log(id);
console.log($scope.tasks[id].description); //The Description to go with the ID.
};
});
答案 0 :(得分:2)
您将返回索引为id
的任务。听起来你想在数组中搜索具有特定id的任务并返回该描述。类似的东西:
$scope.viewTask = function(id) {
console.log(id);
for(i=0;i<$scope.tasks.length;i++) {
if ($scope.tasks[i].id == id) {
console.log($scope.tasks[id].description);
}
}
};
您可以创建一个过滤器或其他东西,以使这更容易,但逻辑是相同的。这里有几个答案可以帮助过滤器,以便不重复代码:
In Angular, I need to search objects in an array
在这种情况下,你的功能看起来像是:
$scope.viewTask = function(id) {
console.log(id);
var found = $filter('getById')($scope.tasks, id);
console.log(found.description);
};
Plunker:http://plnkr.co/edit/UMApcLbzz0HZIKkRrnOQ?p=preview
我修改了答案以记录您的问题数据。