强制禁用指令缓存或重载angularjs指令

时间:2014-06-30 14:33:49

标签: angularjs angularjs-directive angularjs-scope

如何强制重新渲染我的指令

模板

<div ng-if="showDirective">
  <my-directive attr="value"></my-directive>
</div>
<button ng-click="toggleDirective()">Toggle</button>

控制器

  $scope.showDirective = true 

  $scope.toggleDirective = function() {
    $scope.showDirective = !$scope.showDirective;
  }

我在指令中有一个ajax请求,它获取数据并通过ng-repeat循环。

页面加载时第一次加载指令。当我第一次点击切换按钮时它隐藏指令,当我点击切换时再次从缓存加载或渲染上一个dom。如何在显示时强制重新呈现指令..

1 个答案:

答案 0 :(得分:0)

重新编译标记是重新渲染它的唯一机会....

然而,你为什么要那样做?也许只需更新ng-repeat中的列表就足够了? AngularJS将看到更改并重新呈现列表本身,无需手动重新编译。