Я работаю над небольшим приложением, в котором у нас есть группы, подгруппы и члены подгрупп. Группой в данном случае являются Области риска, которых в основном три. Даны идентификаторы 1,2 и 3 соответственно. В каждой из областей риска есть подгруппы, которые называются семейными единицами, и для каждой семейной единицы есть члены семьи. В зоне риска может быть около 127 семейных единиц, каждая со своими соответствующими членами.
У меня проблема с поиском членов семьи, сгруппированных по каждой семье. Я получаю результаты, но большинство из них не определены. В случае, когда в зоне риска 127 семейных единиц, я могу получить только около 24 семейных единиц с их членами, у которых более 100 неопределенных. Ниже мой контроллер
Мой контроллер
.controller('familyRiskCtrl', ['$scope', 'familydataService', '$routeParams', function ($scope, familydataService, $routeParams) {
$scope.familysR = [];
$scope.currentPage = 1;
$scope.itemsPerPage = 5;
getDataRiskArea();
// Gets family by risk area
function getDataRiskArea() {
familydataService.getFamilysByRiskArea($routeParams.id).then(function (result) {
$scope.familyR = result;
console.log(result);
// variable to hold the families
var familyUnit = [];
// Get family by FSU Id (FuId)
angular.forEach(result, function (value, key) {
familydataService.getFamilyByFuId(value.FuId).then(function (resulti) {
var familyResult = resulti;
var FuIds = resulti[key].FuId;
console.log(key);
// Push the array object to families
familyUnit.push({
Id: value.FuId,
FamilyUnitName: value.FamilyUnitName,
Families: familyResult
})
});
});
// console.log(families);
console.log(familyUnit);
$scope.FamilyUnit = familyUnit;
});
}
$scope.sortBy = function (column) {
$scope.sortColumn = column;
$scope.reverse = !$scope.reverse;
};
}])
А ниже указана используемая услуга. Когда я консоль зарегистрировал результаты, я понял, что область риска получила все отличные идентификаторы семейных единиц, но при попытке получить членов под разными семейными единицами, он может извлечь только несколько ошибок броска для более чем 70% оставшихся данных, не тянул.
Обратите внимание, что я использовал значение angular.forEach () для отслеживания различных FuIds в массиве, когда они позже использовались для выборки членов семейной единицы.
Мой сервис
(function () {
'Use Strict'
angular
.module('app')
.factory('familydataService', ['$http', '$q', function ($http, $q) {
var service = {};
// Gets the Family by Risk Area ID
service.getFamilysByRiskArea = function (id) {
var deferred = $q.defer();
$http.get('/Family/FamilyByRisk/' + id).then(function (result) {
deferred.resolve(result.data);
}, function () {
deferred.reject();
});
return deferred.promise;
};
// Get family by FuID
service.getFamilyByFuId = function (id) {
var deferred = $q.defer();
$http.get('/Family/FamilyByFuID/' + id).then(function (result) {
deferred.resolve(result.data);
}, function () {
deferred.reject();
});
return deferred.promise;
};
return service;
}]);
})();
А вот так выглядит мой console.log
![enter image description here](https://i.stack.imgur.com/7UrAS.jpg)
![enter image description here](https://i.stack.imgur.com/oMgq3.jpg)
Исходя из вышеизложенного, существует 127 семейных единиц, извлеченных по идентификатору зоны риска, из которых 24 семейных единицы с их членами были получены с оставшимися неопределенными.