2014-09-03 3 views
3

J'ai ceci:propriétés d'objet spécifiques de changement 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"; 
    } 
}); 

Comment puis-je changer la propriété dans un certain point d'un tableau d'objets?

-je obtenir cette erreur, même si je sais qu'il existe

$scope.data[i] is undefined 

J'ai essayé d'analyser le JSON, mais je reçois cette erreur

unexpected character found... 
+0

Qu'est-ce que 'data.content'? – dfsq

+0

S'il vous plaît poster le JSON afin que nous puissions jeter un oeil. –

Répondre

1

J'ai trouvé une solution:

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

pour être honnête, je ne sais pas pourquoi cela fonctionne de cette façon, mais il le fait. Merci à tous.

-1

utilisation utiliser si $scope.data a tableau d'objet :

$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"; 
    } 
}); 

ou si valeur1 et valeur2 est déjà une clé de scope.data $ comme

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

puis utilisez ceci:

$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"; 
     } 

    } 
}); 
Questions connexes