Angular dynamic factory

I'm trying to use a single controller to list multiple similar collections so I can call different templates with the same controller. In fact, right now I have 6 controllers for listing and another 6 for forms but they're all duplicates.

I've made a non-functional plunker just to show how I intend it to work. I've avoided declaring routeProviders because knowing it wouldn't work I tried to make it as straight to the point as I could. http://plnkr.co/edit/d06PcrJS5newhrmNy6EJ?p=preview

I've seen on stackoverflow how to declare a class with a dynamic name:

var str = "MyClass";
var obj = new window[str];

But as I have not been able to find where it's stored I'm not able to retrieve it.

Does anyone have a hint on how to do this?

You can use Angular's injector to return the service instance you want. For example:

app.controller('NodeListCtrl', function($scope, $location, $injector) {
  var modelName = $location.path().split("/")[1];

  $scope.modelName = modelName.charAt(0).toUpperCase() + modelName.slice(1);

  $scope.nodes = $injector.get($scope.modelName).query();
});

Note: Don't forget to add the $injector to the controller's function signature.

jsfiddle: http://jsfiddle.net/bmleite/Mvk2y/