AngularJS – dynamic创build指定指令的元素
我有这样的设置:
- 控制器
c
广播事件e
- 指令
d
监听e
,然后通过append写入到DOM中,这样就创build了指定指令d2
新元素。
IE: element.append('<directiveTwo ...>')
- Angular从不叫Angth指令
- 当我检查DOM(和debugging),我看到控制器
c
和指令d
正在做他们的工作,我有新的directiveTwo
要素。
什么不见了? dynamic创build这些元素后,需要做些什么来触发指令2
调用?
请参阅$compile
。 你可以像这样使用这个服务:
var newDirective = angular.element('<div d2></div>'); element.append(newDirective); $compile(newDirective)($scope);
这将执行你的新元素的编译和链接,并设置d2
行动。
然而,如果你可以按照其他内置指令(如ng-repeat
或ng-include
来重写你的原始指令,那么你可能会发现它更简单和更有angular度,它将为你执行编译和链接。
如果您的指令足够简单,那么在听到您的事件时可以按照添加到数组的方式做一些事情,并指定一个模板
<div ng-repeat="evt in recordedEvents"> <div d2="evt"></div> </div>