angular.module('fasit') .controller('KontaktpersonerCtrl', ['$scope', 'personService', function ($scope: fb.IKontaktpersonerCtrlScope, personService: fb.IPersonService) { var removeKontaktperson = function (kontaktperson: fb.AdministrativKontaktperson) { if (kontaktperson.PersonId.value > 0) { personService.deleteAdministrativKontaktperson(kontaktperson); } else { kontaktperson.dequeue(); } for (var i: number = 0; i < $scope.kontaktPersonArray.length; i++) { if ($scope.kontaktPersonArray[i].kontaktperson.PersonId.value === kontaktperson.PersonId.value) { $scope.kontaktPersonArray.splice(i, 1); return; } } }; $scope.kontaktPersoner = personService.getAdministrativaKontaktpersoner($scope.$parent.kontakt.PersonId.value); $scope.kontaktPersonArray = []; $scope.kontaktPersoner.$promise.then(function () { $scope.kontaktPersonArray = []; angular.forEach($scope.kontaktPersoner, (value, key) => { $scope.kontaktPersonArray.push({ kontaktperson: value, removeFunction: removeKontaktperson }); }); }); $scope.$on('$destroy', function () { delete $scope.kontaktPersonArray; delete $scope.kontaktPersoner; }); $scope.laeggTillNyAdministrativKontaktperson = function () { $scope.kontaktPersonArray.push({ kontaktperson: fb.AdministrativKontaktperson.newAdministrativKontaktperson($scope.$parent.kontakt.PersonId.value), removeFunction: removeKontaktperson }); }; }]);