我有这样的设置:
c
e
d
d2
IE浏览器: element.append('<directiveTwo ...>')
element.append('<directiveTwo ...>')
two
directiveTwo
什么不见了?2动态创建这些元素后需要做什么来触发指令调用?
2
请参阅$compile。您可以类似于以下方式使用此服务:
$compile
var newDirective = angular.element('<div d2></div>'); element.append(newDirective); $compile(newDirective)($scope);
这将执行新元素的编译和链接,并d2付诸行动。
但是,如果您可以某种方式根据其他内置指令(如ng-repeat或ng-include为您执行编译和链接)重写原始指令,则可能会发现它更简单,更合理。
ng-repeat
ng-include
如果您的指令足够简单,则可以在听到事件时按照添加到数组的方式进行操作,并指定一个模板,例如
<div ng-repeat="evt in recordedEvents"> <div d2="evt"></div> </div>