У меня есть следующий json:
{
"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, чтобы найти правильный список? спасибо
Поскольку ваш объект $scope.modelData
является объектом, вы должны получить доступ к его свойствам двумя способами:
$scope.modelData.a1
$scope.modelData['a1']
Итак, поскольку у вас есть переменная tempData
, и это String, вы должны использовать:
$scope.data = $scope.modelData[tempValue];
Выполняя $scope.data = $scope.modelData.tempValue;
как и вы, он попытается найти свойство с именем tempValue
внутри переменной $scope.modelData
, и это свойство не существует.
Вот почему ваша консоль регистрации undefined
.
V
чтобы пометить его как принятый.