Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制禁用指令缓存或重新加载angularjs指令_Angularjs_Angularjs Directive_Angularjs Scope - Fatal编程技术网

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

强制禁用指令缓存或重新加载angularjs指令,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,如何强制重新呈现我的指令 模板 <div ng-if="showDirective"> <my-directive attr="value"></my-directive> </div> <button ng-click="toggleDirective()">Toggle</button> 指令中有一个ajax请求,它获取数据并通过ng repeat循环 指令首次在页面加载时加载。当我第一次单击切换按钮时,它隐藏了该

如何强制重新呈现我的指令

模板

<div ng-if="showDirective">
  <my-directive attr="value"></my-directive>
</div>
<button ng-click="toggleDirective()">Toggle</button>
指令中有一个ajax请求,它获取数据并通过ng repeat循环


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

重新编译标记是重新呈现标记的唯一机会


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

我的用例有点复杂,指令是一个子指令,它将在父指令中,它是递归的!!当直接父指令更改时,我需要更新子指令。。然后棘手的部分是两者都有独立的作用域。然后重新编译它。这是昂贵的,可能不是最好的解决方案,但可能对你有用。不过我不推荐。。我相信你能想出一些解决办法让它发挥作用。。在这种情况下,重新编译是一个肮脏的把戏。
  $scope.showDirective = true 

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