使用角度js中的id更新对象

时间:2016-10-07 07:20:05

标签: angularjs arrays

我有一个数组有两个键,如id和选定的值,如下所示

$scope.overview =[{'id':1,'selectedvalues':[a,e,o]},{'id':2,'selectedvalues':[aa,ee,oo]},{'id':3,'selectedvalues':[aaa,eee,ooo]}];

我需要在添加值后更新' h'对于id = 1,我需要像

那样更新我的数组
$scope.overview =[{'id':1,'selectedvalues':[a,e,o,h]},{'id':2,'selectedvalues':[aa,ee,oo]},{'id':3,'selectedvalues':[aaa,eee,ooo]}];

目前我在jets中处理的anuglar js还有其他任何方式,如

if (this.selectedCategoryOverview.length > 0) {

    for (var i in updateDropown) {

       if (catid == updateDropown[i].id){
        overviewUpdate = false;

          updateDropown[i].selectedValues = tempSelectValuesArray;
       }

    }

    }
    if(overviewUpdate){
        this.selectedCategoryOverview.push({
        'id': catid,
        'selectedValues': tempSelectValuesArray
    });
    }

3 个答案:

答案 0 :(得分:0)

尝试使用过滤器,

var found;

if (this.selectedCategoryOverview.length > 0) {
    found = $filter('filter')($scope.updateDropown, { id: catid });
    if (found.length)
        $scope.updateDropown = tempSelectValuesArray;
}

if (found && found.length) {
    this.selectedCategoryOverview.push({
        'id': catid,
        'selectedValues': tempSelectValuesArray
    });
}

答案 1 :(得分:0)

尝试使用array.find按ID查找现有概述。如果find方法返回一个值 - 只需更新该值,否则添加该值。

在伪代码中:

foundObject = array.find()
if(foundObject)
  update()
else
  pushNew()

答案 2 :(得分:0)

如果你使用角度方式或JS方式,除非涉及DOM,否则没有多大区别,所以这里有一种角度方式,只不过是用JS方式,

 function pushNewArrayValue(value){
  angular.forEach($scope.overview,function(arr,i){
   arr.selectedValue.push(value);
  })
 }

 pusheNewArrayValue('h')