1

當單擊列表中的項目,一個ng-click火災與該項目的id發,當時的想法是去匹配id該項目的description但它似乎只採摘請改爲使用該項目的indexAngularJS從項目獲取數據,其中

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

回答

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

在這種情況下,你的函數看起來升IKE:

$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

我修改了答案來記錄您的問題等數據。

+0

我去了這 var found = $ filter('filter')($ scope.tasks,{id:task_id},true); \t \t \t \t if(found.length){found [0] .description; }' – ngplayground

+0

做驗證是個好主意。 – lucuma