使用 Angular 1.6.6 和 ui-bootstrap 2.5.0
如果操作属性值不为空,我正在尝试使用控制器。
我的每个选项卡的逻辑都非常不同,因此我不想将所有选项卡放在一个控制器中。有没有办法解决这个问题?
行动
$scope.actions = [
{
slug: "basicData",
title: "Grunddata",
icon: "fa fa-table",
template: templatePath + "basicData.html",
disabled: false,
controller: null
}, {
slug: "responsible",
title: "Ansvariga",
icon: "fa fa-address-book-o",
template: templatePath + "responsible.html",
disabled: false,
controller: null
}, {
slug: "reportTime",
title: "Rapportera tid",
icon: "fa fa-clock-o",
template: templatePath + "reportTime.html",
disabled: false,
controller: "ActivityTimeReportingController"
}
];
这是我的标签集
<uib-tabset active="activePill" vertical="true" type="pills">
<uib-tab ng-repeat="action in actions" index="$index+1" disable="action.disabled">
<uib-tab-heading>
<span class='{{action.icon}}'></span> {{action.title}}
</uib-tab-heading>
<div ng-include="action.template" ng-if="!action.controller" ng-controller="action.controller"></div>
<div ng-include="action.template" ng-if="action.controller"></div>
</uib-tab>
</uib-tabset>
我收到以下错误
名称为“action.controller”的控制器未注册。
花括号没有任何区别。
我也尝试过使用一个函数:
$scope.getController = function (controllerName) {
return controllerName.ToString();
};
在我的标签集中:
<div ng-include="action.template" ng-if="!action.controller" ng-controller="getController(action.controller)"></div>
有同样的错误信息
名称为 'getController(action.controller' 的控制器未注册。
迭代对象集合时,有没有办法动态分配 ng-controller?