2015-02-06 3 views
2

У меня есть этот $ scope.data объект:доступ свойство объекта в angularjs

$scope.data = { 
    '8':{ 
     'id':'81', 
     'name':'anna', 
     }, 
    '9':{ 
     'id':'82', 
     'name':'sally', 
     }, 
}; 

я получаю идентификатор, используя для петли таким образом.

$scope.getID = function(id){ 
    for(var i=0;i<$scope.data.length;i++){ 
    if(id == $scope.data[i].id) 
     return $scope.data[i].name; 
    } 
    } 
}; 

Но это совсем не работает. Мне интересно, почему? Это я правильно называю идентификатором?

+0

я не думаю, что вы можете использовать $ scope.data.length, как его не массив..! –

+0

Что я могу сделать сейчас? –

+0

проверить мой ответ –

ответ

3

, как его не массив объектов, которые вы не можете использовать $scope.data.length, попробуйте использовать for…in цикл, как:

for(key in $scope.data) { 
    var obj = $scope.data[key]; 
    if(obj['id'] == id) { 
     return obj['name']; 
    } 
} 
2

Если вам просто нужно, чтобы получить количество ключей в вашем объекте, то попробуйте использовать.

Object.keys (OBJ) .length

1

Это может поможет вам -

$scope.users=data; 
$scope.getUserNameBYID = function(id){ 
    if(users !== undefined && users.length >0){ 
     for(key in users) { 
      var obj = users[key]; 
      if(obj['id'] === id) { 
       return obj['name']; 
      } 
     } 
    } 
}; 
Смежные вопросы