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。