如何在Angular中重新编译指令?

时间:2017-08-07 13:57:04

标签: angularjs

我正在使用指令来呈现树状数据。 由于数据可以过滤。 当我清除过滤器时;我希望我的指令能够响应数据中的新变化并自行更新,但它并没有。 只有当我更改视图/路由时,指令才会更新。

我尝试在清除过滤器事件时执行此代码

$scope.$on('clearingStockFilter', function() {
                $timeout(function() {
                    $compile($element.contents())($scope);
                },300);
            });

但我最终制作克隆指令,所以我开始在视图中看到数据两次

1 个答案:

答案 0 :(得分:0)

您应该将元素替换为已编译的元素;

var newEl = $compile($element.contents())($scope);
$element.replaceWith(newEl);
不过,这可能不是达到你想要做的最好的方法。