在angular.js的compileTemplateUrl函数中。 derivedSyncDirective的'controller:null'导致没有为该元素存储控制器函数。 所以在nodeLinkFn(它的预链接部分)中调用的getControllers将抛出异常,因此不会调用prelink。 见http://plnkr.co/edit/yMcurPowZmxCOv0luE5s 我不明白为什么'controller:null'在这里。有人知道吗?
答案 0 :(得分:1)
如果希望按名称引用控制器,则需要将控制器传递给指令。首先,您需要在模板中使用指令指定控制器,如此
<div ess-tag ng-controller="TagController">
<span>test</span>
</div>
在指令中,添加require
语句,如果您希望按名称引用控制器,它会告诉控制器在哪里找到注入的控制器:
require: 'ngController',
controller: 'TagController',