Reputation: 255
I have initializated array in Angular JS:
$scope.formData.universitySelected = [];
I try to fill array in loop:
angular.forEach($scope.formData.university, function (value, key) {
if (typeof value === 'object') {
$scope.formData.universitySelected[key].id = value.IdEducation;
} else {
$scope.formData.universitySelected[key].selected = value;
}
});
But I get error:
Cannot set property 'id' of undefined
Upvotes: 1
Views: 73
Reputation: 18905
You should create an object before using it.
angular.forEach($scope.formData.university, function (value, key) {
$scope.formData.universitySelected[key] = $scope.formData.universitySelected[key] || {};
if (typeof value === 'object') {
$scope.formData.universitySelected[key].id = value.IdEducation;
} else {
$scope.formData.universitySelected[key].selected = value;
}
});
Upvotes: 2
Reputation: 136144
I think you need to define that object first then add value to in it.
Code
angular.forEach($scope.formData.university, function (value, key) {
if (typeof value === 'object') {
$scope.formData.universitySelected[key] = {id : value.IdEducation};
} else {
$scope.formData.universitySelected[key] = {selected : value.IdEducation};
}
});
Upvotes: 1