Как изменить значение элемента JSON.AngularJS - Изменить значение JSON
У меня есть JSON, как это в моем контроллере
$scope.cfg= {
"cfgName" : "Name",
"cfgs": [
{
"cfgsName": "form.0",
"cfgValue": "hello"
},
{
"cfgsName": "form.1",
"cfgValue": "fname"
},
{
"cfgsName": "form.2",
"cfgValue": "how?"
}
]
};
Теперь у меня есть метод, чтобы добавить одно поле в качестве первого элемента в массиве cfgs
.
$scope.newField=function(fieldNameVal) {
var newfield={
"cfgValue": fieldNameVal
};
$scope.cfg.cfgs.splice(0,0,newfield);
$scope.$apply();
};
Выше работает отлично. Но я хочу изменить значение cfgValue
каждого в массиве так, чтобы значение выглядело так, как его индекс.
Нужная строка JSON после добавления нового элемента является
{
"cfgName": "Name",
"cfgs": [
{
"cfgsName": "form.0",
"cfgValue": "someVal"
},
{
"cfgsName": "form.1",
"cfgValue": "hello"
},
{
"cfgsName": "form.2",
"cfgValue": "fname"
},
{
"cfgsName": "form.3",
"cfgValue": "how?"
}
]
}
Я попытался следующий код внутри newField()
метода после добавления элемента.
for(var i=0;i<$scope.cfg.cfgs.length;i++) {
var val="engine.form."+i;
$scope.cfg.cfgs[i].push({"cfgsName" : val});
}
Но он показывает ошибку.
Uncaught TypeError: Object #<Object> has no method 'push'
Каков правильный путь? Благодаря