我有这样的设置:
c
广播事件e
d
侦听e
,并在e
上通过追加写入DOM,并在此过程中创建指定指令d2
的新元素。 IE:element.append('<directiveTwo ...>')
two
c
和指令d
正在执行他们的工作,我有新的directiveTwo
元素。缺少什么?在动态创建这些元素之后需要做些什么才能触发指令2
?
答案 0 :(得分:90)
见$compile
。您可以使用此服务:
var newDirective = angular.element('<div d2></div>');
element.append(newDirective);
$compile(newDirective)($scope);
这将执行新元素的编译和链接,并将d2
设置为操作。
但是,如果您可以按照ng-repeat
或ng-include
之类的其他内置指令重写原始指令,那么您可能会发现它更简单,更有棱角。它会为您执行编译和链接。< / p>
如果您的指令足够简单,它可以在听到您的事件时执行添加到数组的操作,并指定一个模板,如
<div ng-repeat="evt in recordedEvents">
<div d2="evt"></div>
</div>