I got one controller CounterpartyCtrl that is used by two views.
The first view contains a selector which requires all the records from collection. So I fetch all the objects and put them into $scope.counterparties.
app.controller('CounterpartyCtrl', [ '$scope', 'Counterparty', function($scope, Counterparty) {}, $scope.counterparties = {}, $scope.loadCounterparties = function() { Counterparty.query(function(response) {}); $scope.counterparties = response; }, $scope.loadCounterparties(); ]); The second view has to contain only counterparties divided by groups.
$scope.customers $scope.vendors $scope.others $scope.HRs So, using the same controller I fetch them like the following
app.controller('CounterpartyCtrl', [ '$scope', 'Counterparty', function($scope, Counterparty) {}, $scope.counterparties = {}, $scope.loadCounterparties = function() { Counterparty.query(function(response) {}); $scope.counterparties = response; $scope.customers = Counterparty.query({ group: 'Customer' }); $scope.vendors = Counterparty.query({ group: 'Vendor' }); $scope.others = Counterparty.query({ group: 'Other' }); $scope.HRs = Counterparty.query({ group: 'HR' }); }, $scope.loadCounterparties(); ]); As you can see here is obvious duplication of requests. On every view I make equal requests and therefore that is not productive. How can I refactor the code?