AngularJS从项目中获取数据

时间:2014-06-26 14:32:33

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

点击列表中的某个项目后,ng-click会在发送项目的id时触发,其目的是让项目的description与{id匹配1}}但似乎只是取而代之的是项目的index

Plnk

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.
            };
});

1 个答案:

答案 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

我修改了答案以记录您的问题数据。