【发布时间】:2017-01-28 19:35:14
【问题描述】:
我有一个执行以下指令的指令:
- 向元素添加另一个指令属性。
- 删除自己的属性。
- 在元素上调用
$compile()以使 AngularJS 重新编译元素,从而附加新指令。
这很好用,除非我还向元素添加了 ng-if。请参阅此最小示例并按照以下步骤进行演示。
https://embed.plnkr.co/ymk0RwGopGF1KvesWmvA/
- 按
+任意次数以添加到“计数”。 - 按
0重置“计数”。 - 再按任意次数
+。
我希望“显示的我的测试”<p> 标记在第 2 步之后一旦其ng-if 条件不再为真,就会从 DOM 中删除。相反,它会一直存在,您会在第 3 步之后看到消息的额外副本。
我假设在 my-test 指令链接函数中调用 $compile($element)($scope); 会产生一些意想不到的后果,但我不明白这里发生了什么。有什么想法吗?
谢谢, 大卫
【问题讨论】:
标签: angularjs angularjs-directive angularjs-compile