Dynamic 角动态工厂

Dynamic 角动态工厂,dynamic,angularjs,factory,Dynamic,Angularjs,Factory,我试图使用一个控制器列出多个类似的集合,这样我就可以用同一个控制器调用不同的模板。事实上,现在我有6个用于列表的控制器和6个用于表单的控制器,但它们都是重复的 我制作了一个非功能性的Plunk,只是为了展示我打算如何使用它。我避免声明routeProviders,因为我知道它不起作用,所以我尽量直截了当。 我在stackoverflow上看到了如何使用动态名称声明类: var str = "MyClass"; var obj = new window[str]; 但由于我无法找到它的存储位置

我试图使用一个控制器列出多个类似的集合,这样我就可以用同一个控制器调用不同的模板。事实上,现在我有6个用于列表的控制器和6个用于表单的控制器,但它们都是重复的

我制作了一个非功能性的Plunk,只是为了展示我打算如何使用它。我避免声明routeProviders,因为我知道它不起作用,所以我尽量直截了当。

我在stackoverflow上看到了如何使用动态名称声明类:

var str = "MyClass";
var obj = new window[str];
但由于我无法找到它的存储位置,我无法检索它

有人知道如何做吗?

您可以使用Angular返回所需的服务实例。例如:

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();
});
注意:不要忘记将
$injector
添加到控制器的功能签名中

jsfiddle