不幸的是,您无法将指令名称保存在字符串变量中,也无法在HTML中访问它们。你可以,但是,保存一个字符串中的变量
$scope和使用
ng-switch,以 选择 正确的指令:
<div ng-switch="dirName"> <div ng-switch-when="ng-user"> <div ng-user></div> </div> <div ng-switch-when="..."> ... </div></div>
但是,现在最好使用更具描述性的内容而不是
ng-user进行 切换 。
旁注: 请勿在自己的指令中使用 ng- 前缀。Angular使用该前缀,以便它不会与其他名称空间冲突。您应该为指令使用自己的前缀。
更新 :对于为何
<div ></div>不起作用的更新问题,它发生是因为angular
$compiles指令仅执行一次。如果您先是
$interpolate模板的内容(将替换
{{dirName}}为ng-user),然后
$compile在将其输入HTML之前先进行显式显示,则它应该可以工作。



