2015-09-22 2 views
0

У меня есть следующие JSON:Как читать json в angularjs?

{ 
"a1": [ 
"b1","b2" 
], 
"a2": [ 
"c1","c2","c3" 
] 
} 

В моем контроллере я получаю JSON с помощью следующего кода:

$.getJSON('tk.json', function(data) { 
$scope.$apply(function(){ 
$scope.modelData = data; 
}); 
}); 

Я наблюдаю переменный и, когда она меняется, я хочу, чтобы получить конкретный список из JSON. Например:

$scope 
.$watch(
'value1', 
function() { 
if ($scope.value1 != null)   
{                   
var tempValue = $scope.value1; 
$scope.data = $scope.modelData.temValue;   
console.log($scope.data);//undefined 
} 
}); 

Если значение равно a1 я хочу список = [ "b1", "b2"]. Со следующими $ scope.data = $ scope.modelData.temValue; Я получаю значение undefined для $ scop.data.

Как я могу прочитать json, чтобы найти правильный список? Спасибо

+0

Вы отлаживали и проверяли, что возвращает вызов getJSON в параметре данных? – toskv

ответ

1

Поскольку ваша $scope.modelData является объект, вы должны получить доступ к его свойству двух способов:

  • Сразу: $scope.modelData.a1
  • струнный: $scope.modelData['a1']

Итак, у вас есть переменная tempData, и это строка, вы должны использовать:

$scope.data = $scope.modelData[tempValue]; 

Поступая $scope.data = $scope.modelData.tempValue;, как вы, он будет пытаться найти свойство с именем tempValue внутри переменной $scope.modelData, и это свойство не существует.

Именно поэтому ваша консоль регистрирует undefined.

+0

Большое спасибо! –

+1

@StavrosKouris, если бы мой ответ был полезен для вас, пожалуйста, нажмите на стрелку, чтобы его перенести, и нажмите «V», чтобы отметить его как принятый. – Buzinas

Смежные вопросы