我熟悉控制器的语法 & 名但我试图创建一个通用的指令,将获得项目的列表,并对每个项目我需要指定一个控制器。通过动态控制器角度指令
这是我的主要指令:
function controlPanel() {
var directive = {
restrict: 'E',
replace: true,
scope: {
controlPanelItems: "=sbControlPanelItems"
},
templateUrl: 'control-panel.html',
link: link
};
return directive;
function link(scope, element) {
}
}
这里是指令的模板:
<sb-control-panel-item ng-repeat="controlPanelItem in controlPanelItems"
sb-title="controlPanelItem.title"
sb-template-url="controlPanelItem.templateUrl"
sb-control-panel-item-controller="controlPanelItem.controller"></sb-control-panel-item>
我的问题是与SB-控制面板项控制器属性。
当我传递变量时,角度抛出异常,当我传递简单字符串(控制器的名称)时,它的工作非常好。
这里是控制面板项指令代码:
function controlPanelItem() {
var directive = {
restrict: 'E',
replace: true,
scope: {
title: '=sbTitle',
templateUrl: '=sbTemplateUrl'
},
templateUrl: 'control_panel_item.html',
controller: '@',
name: 'sbControlPanelItemController',
link: link
};
return directive;
function link(scope, iElement, iAttributes, controller) {
}
}
也许有一种方法可以通过注入链接功能的控制器,然后我就只是将其穿过的范围?
http://stackoverflow.com/questions/ 16253317/angularjs-turn-ng-controller-name-into-a-directive-variable –