我有一个数组有两个键,如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
});
}
答案 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')