2017-06-08 10 views
0

2秒ごとに更新されるAPIからオブジェクトの配列を取得します。私はこの配列の変更を探している$ watchを持っています。変更されたこれらの要素に背景色を設定するために、要素または要素が変更されたかどうか、およびそれらのインデックスを知る必要があります。 ありがとうございます。

$scope.$watch('recentUpdates', function(newValue, oldValue) { 
    if(oldValue != newValue && newValue != null){ 
    $scope.recentUpdates= newValue; 
    console.log(newValue) 
    setColor(newValue) ; 
}else{ 
    console.log('hey, value is not changed!'); 
} 

});

SetColor関数は、要素の色を更新するために要素のオブジェクトとインデックスを取得する必要があります。

答えて

0

サイクルごとに複数の変更が存在することが想定されます。したがって、変更を探してアレイを循環させることができます。私はまた、配列の長さが変更されないと仮定します。

$scope.$watch('recentUpdates', function(newValue, oldValue) { 
    for (var i=0; i < newValue.length; i++) { 
    if (newValue[i] !== oldValue[i]) { 
     console.log(newValue[i]); 
     setColor(newValue[i], i) ; 
    } 
    } 
}); 

次に、新しい値と位置をsetColor関数に渡します。これを行う理由がないので、$scope.recentUpdates= newValue;も削除しました。

希望の場合はangular.forEachを使用してループをループすることもできます。

+0

ありがとうございました – Vitali

関連する問題