AngularJS Невозможно прочитать свойство 'forEach' из неопределенного - PullRequest
0 голосов
/ 27 апреля 2019

Этот код вызывает ошибку в консоли разработчика:

$scope.AddCandidatesToCompannies = function()
{
    console.table($scope.candidates);
    Object.entries($scope.candidates).forEach(candidate =>
    {
        candidate.jobs.forEach(job =>
        {
            var company_id = job['company_id'];

            Object.entries($scope.companies).forEach(company =>
            {
                if (company['company_id'] == company_id)
                {
                    console.log('match'); 
                };
            });
        });
    });
};   // AddCandidatesToCompannies()

$scope.candidates DOES содержит данные, и они является объектом;это довольно сложно, поэтому я не буду загромождать вопрос этим, но ее обзорная картинка

enter image description here

Утверждение Object.entries($scope.candidates).forEach(candidate => дает

angular.min.js: 83 TypeError: Невозможно прочитать свойство 'forEach' из неопределенного
в mapController.js: 138
в Array.forEach ()
в области видимости. $.AddCandidatesToCompannies (mapController.js: 136)
в $ scope.ProcessSearchResults (mapController.js: 161)
в C (angular.min.js: 91)
в C (angular.min.js:91)
в angular.min.js: 92
в h. $ Eval (angular.min.js: 100)
в h. $ Digest (angular.min.js: 98)
в h. $ apply (angular.min.js: 101)
в f (angular.min.js: 66)
в K (angular.min.js: 70)
в XMLHttpRequest.y.onreadystatechange (angular.min.js: 71)

Кто-нибудь может увидеть, что я делаю неправильно?

1 Ответ

1 голос
/ 27 апреля 2019

Object.entries возвращает массивы в массиве с ключом и парой значений.Похоже, вы хотите иметь такую ​​функцию, как Object.values($scope.candidates)

Пример:

Object.entries($scope.candidates) == [[45,{candidate_id:45}],[46,{candidate_id:46}]]
Object.values($scope.candidates) == [{candidate_id:45}, {candidate_id: 46}]
...