是ng-repeat导致无限循环吗?角/节点/猫鼬

时间:2017-08-01 21:51:45

标签: javascript angularjs

<tr ng-repeat="x in projects">
<td>{{x.projects.project_name}}</td>
<td ng-hide="checkPermissions(x)"><button ng-click="deleteProject(x)"> Delete</button</td>
</tr>

功能checkPermissions将发送带有http.post的api以验证当前用户是否有权删除项目 如果他没有权限,它将返回false并且删除按钮不会被显示 你能告诉我为什么我会陷入无限循环吗? 我用Postman测试了我的api,它就像魅力一样 控制台主要错误:$ rootscope:infdig

2 个答案:

答案 0 :(得分:0)

你可以编辑你的问题并在角度控制器中向我们展示代码吗?通常,您可能需要查看有关无限循环错误的角度文档。

https://docs.angularjs.org/error/$rootScope/infdig

祝你好运!

答案 1 :(得分:-1)

它不是无限循环:在每个视图循环上调用checkPermissions(相当于角度中的帧速率)。这是由于每帧都要调用ng-hide。解决方案是只为控制器中的每个项目调用checkPermissions一次,并仅检查结果。

喜欢

// myController.js
$scope.projects.forEach(project => {
  project.canDisplay = checkPermissions(project)
}

// myHtml.html
ng-hide="x.canDisplay"