Angularjs 带动态控制器的角度指令

Angularjs 带动态控制器的角度指令,angularjs,Angularjs,我想创建一个带有动态控制器和模板的面板指令,以便在应用程序中显示上下文相关选项。例如,单击“字体”设置上的“编辑”将显示“字体选项” 我找不到太多关于它的文档,但现在似乎可以使用name属性在指令上指定控制器名称: app.directive('dynamicPanel', function() { return { restrict: 'A', scope: { config: '=dynamicPanel' }, controller: '@'

我想创建一个带有动态控制器和模板的面板指令,以便在应用程序中显示上下文相关选项。例如,单击“字体”设置上的“编辑”将显示“字体选项”

我找不到太多关于它的文档,但现在似乎可以使用
name
属性在指令上指定控制器名称:

app.directive('dynamicPanel', function() {
  return {
    restrict: 'A',
    scope: {
      config: '=dynamicPanel'
    },
    controller: '@',
    name: 'ctrlName'
  };   
});
我希望的是,如果面板配置如下:

  vm.panel = {
    controller: 'FontCtrl',
    template: 'font.template.html'
  };
然后我可以像这样加载面板:

<div class="options-panel" 
     ng-if="vm.panel" 
     dynamic-panel="vm.panel" 
     ctrl-name="{{ vm.panel.controller }}" 
     ng-include="vm.panel.template">

</div>

不幸的是,这不起作用。我得到错误
格式错误的控制器字符串
。另外,看起来只有文本绑定适用于
name
属性(
@


是否有一种方法可以将
name
属性绑定到指令中的动态值或动态控制器的替代项。

我最终通过采用组件模式解决了这个问题。通过将我的选项面板作为单独的指令注册到它们自己的控制器中,这就变成了一个呈现指令标记的问题,例如
,然后编译“动态面板”

看看这个JSFIDLE。