I have a factory NewEditSvc where I'm trying to share functionality common to NewCtrl and EditCtrl.  One thing I'm trying to do is get feeParameters from the server inside the service but this is not working.
angular.module('feeSuitesApp')
.factory('NewEditSvc', function($q, FeeTypesSvc){
  var _feeParameters = {};
  function getParameters(){
    return _feeParameters;
  }
  function setParameters(feeType){
    var promise = $q(function(resolve, reject){
      FeeTypesSvc.resource.get({id: feeType.id, association: 'fee_parameters'}).
      $promise.then(function(data){
        resolve(data);
      }, function(error){
        reject(error);
      })
    });
    promise.then(function(data){
      _feeParameters = data.master;
    });
  }
  return {
    getParameters: getParameters,
    setParameters: setParameters
  }
});
angular.module('feeSuitesApp')
.controller('NewCtrl', function(NewEditSvc, feeType){
  $scope.feeParameters = NewEditSvc.getParameters();
  $scope.feeType = feeType;
  $scope.setParameters = function(feeType){
    NewEditSvc.setParameters(feeType);
  };
  $scope.setParameters($scope.feeType);
});
After my last line $scope.feeParameters is not set.  But if I return the promise variable from NewEditSvc.setParameters() and then in my NewCtrl I do the following:
  var promise = $scope.setParameters($scope.feeType);
  promise.then(function(data){
    $scope.feeParameters = data.master;
  });
Then everything works. What am I doing wrong?
 
     
    