app = angular.module('app') AbstractController = ($scope) -> $scope.namespace = 'abstract' unless $scope.namespace # to save you a lot of typing... namespace = $scope[$scope.namespace]; namespace.setup = (value) -> namespace.setupComplete = true namespace.x = value AbstractController.$inject = ['$scope'] app.controller 'FooController', ($scope, $injector, $log) -> $scope.namespace = 'foo'; $injector.invoke AbstractController, this, {$scope: $scope} #to save you a lot of typing... namespace = $scope[$scope.namespace]; namespace.setup('bar') $log.log namespace.x # 'bar'