我有一个控制器名称作为字符串,我想要它的构造函数。通过角度控制器名称访问控制器构造函数
我目前的方法如下使用$控制器:后来
$scope.myControllerConstructor= $controller("myControllerName" , {$scope: $scope.$new()}).constructor;
,我用这种构造在这样的HTML:
<div ng-controller="myControllerConstructor">
的问题是我的控制器运行两个时间,有一次,当我得到的构造函数(这是错误的)和一次当我的HTML被编译(这是正确的)
问题是如何获得控制器构造函数,而不运行我T'
更新大约用例:在我们的应用中有60间%的相似性和40%不同的活动很多页。我为这些页面创建了一个指令,团队中的其他开发人员正在使用我的指令创建页面。
该指令接受一个模板和一个控制器(我让他们为字符串),后来包括我所提供的模板和控制器如下:
<div ng-include="myTemplate" ng-controller="myControllerConstructor"></div>
请看一看this jsfiddle为一个简单的例子问题。
方法没有多大意义。你试图解决什么更高水平的问题? – charlietfl
如果您使用它来进行控制器继承,我会建议更新标题和问题以符合您的情况,这样可以更清楚并更容易地找到它。 – estus
延迟安装API是私有的,并且不打算被应用程序使用。滥用AngularJS框架有很多方法。以非结构化的方式使用它通常会导致一个脆弱的应用程序,这是一个维护噩梦。那么你的用例是什么?也许有更好的结构化方式来实现它。 – georgeawg