2014-09-03 3 views
3

У меня есть это:Javascript изменения конкретных свойств объекта

$http({ 
    method: "GET", 
    url: myURL 
}). 
success(function (data, status) { 
    $scope.data = data.content; //complex object 
    for(i=0;i<$scope.data.length;i++){ 
     $scope.data[i].value1 = "newvalue1"; 
     $scope.data[i].value2= "newvalue2"; 
    } 
}); 

Как я могу изменить свойство в определенной точке массива объектов?

Я получаю эту ошибку, даже если я знаю, что существует

$scope.data[i] is undefined 

Я пытался разобрать JSON, но я получаю эту ошибку

unexpected character found... 
+0

Что такое 'data.content'? – dfsq

+0

Пожалуйста, разместите JSON, чтобы мы могли посмотреть. –

ответ

1

Я нашел решение:

$http({ 
    method: "GET", 
    url: myURL 
}). 
success(function (data, status) { 
    $scope.data = data.content; //complex object 
    for(i=0;i<$scope.data.length;i++){ 
     var x = $scope.data[i]; 
     x.value1 = "newvalue1"; 
     x.value2= "newvalue2"; 
     $scope.data[i].value1 = x.value1; 
     $scope.data[i].value2 = x.value2; 
    } 
}); 

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

-1

использование использовать это, если $scope.data имеет массив объектов :

$http({ 
    method: "GET", 
    url: myURL 
}). 
success(function (data, status) { 
    $scope.data = data.content; //complex object 
    for(var key in $scope.data){ 
     $scope.data[key].value1 = "newvalue1"; 
     $scope.data[key].value2= "newvalue2"; 
    } 
}); 

или если значение1 и значение2 уже ключ $ scope.data как

$scope.data = { 
    value1: "me" 
    value2: "you" 
} 

затем использовать это:

$http({ 
    method: "GET", 
    url: myURL 
}). 
success(function(data, status) { 
    $scope.data = data.content; //complex object 
    for (var key in $scope.data) { 
     if (key == 'value1') { 
      $scope.data[key]= "newvalue1"; 
     } 

    } 
}); 
Смежные вопросы