So here's what I could come up with for now. Please feel free to comment if this is or is not a good approach.
I started within one IIFE to decalre my task routine logic: var utilModule = angular.module('utilModule'); function TaskMonitorController(...){ ... this.setTitle = function(title){ $scope.taskTitle = title; }; this.submit = function(url){ ... pre-logic ... $http.get(url).then(...); // reference internal callbacks to change scope properties for success/fail. }; } I decided not to register the above into an angular controller this time, but instead to save the constructor reference so I could use it later in my other modules. I didn't want to put it in the global scope, and wanted to keep it within angular so I made a constant. utilModule.constant('taskMonitorController', TaskMonitorController); Now let's say one of the places where I want to reuse this controller logic is: moduleA and controllerA, and that these are decalred in a separate IIFE var moduleA = angular.module('moduleA', ['ngRoute', 'utilModule']); To get a reference to the taskMonitorController, I don't see a very clean way to get a constant resolved when outside of a angular invocation chain so: var taskMonitorController = angular.injector(['moduleA']).get('taskMonitorController'); function ControllerA(...same params matching TaskMonitorController...){ taskMonitorController.call(this, params from above...); // i.e $scope, $http, etc. this.setTitle('my title'); this.submit('/my-service-path'); } ControllerA.prototype = Object.create(taskMonitorController.prototype); ControllerA.prototype.constructor = ControllerA; moduleA.controller('controllerA', [params matching constructor..., ControllerA]); How do people feel about passing the base portion of the controller constructor TaskMonitorController to another module, extending, and registering it this way? Is there any room for optimization or improvement? -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to angular+unsubscr...@googlegroups.com. To post to this group, send email to angular@googlegroups.com. Visit this group at https://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.